检查远程进程是否正在运行(Linux)

CdS*_*Sdw 2 linux ssh process

我有以下代码将检查脚本(名为my_script.sh)是否正在运行:

ps cax | grep my_script.sh > /dev/null
if [ $? -eq 0 ]
then
    echo "Process is running."
else
    echo "Process is not running."
fi
Run Code Online (Sandbox Code Playgroud)

但是,我想修改它以检查进程是否在另一台计算机上运行,​​而无需直接进行ssh'操作,因为如果我以循环方式运行它,则会使我脱离当前脚本。

本质上,我想这样做:

ssh otherMachine
ps cax | grep my_script.sh > /dev/null
if [ $? -eq 0 ]
then
    echo "Process is running."
else
    echo "Process is not running."
fi
ssh originalMachine
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。谢谢!

小智 5

我不确定这不是您要查找的内容,但可以在ssh调用中直接在远程计算机中执行check命令。返回值应对应于远程计算机中调用的命令的返回值。

当然,您需要启用无密码身份验证方法(例如ssh密钥)。

ssh otherMachine "ps cax | grep my_script.sh > /dev/null"
if [ $? -eq 0 ]
then
    echo "Process is running."
else
    echo "Process is not running."
fi
Run Code Online (Sandbox Code Playgroud)