相当于“ps-p”

DDS*_*DDS 3 top ps busybox

我使用的主板没有ps安装完整的命令。我需要的是ps -p等效的(设置$?是否找到特定 PID 的东西)。

有没有办法用另一个命令(如 top)来完成此任务?

## wannabe_watchdog.sh

MY_EXE="$1"
_pid=-1

while test 1 -eq 1 
do
## this ps -p isn't available on the busybox
ps -p ${_pid}
if test $? -eq 0
then
    echo "executing"
    sleep 10
else
    echo "not executing"
    ./${MY_EXE} &
    sleep 1 
    agent_pid=$(cat /var/run/my_pidfile.pid)
    
    echo "waiting for ${_pid}"
    #wait function sometimes isn't blocking (and I never figured out exactly when)
    wait ${_pid}
    echo "${_pid} is dead - restarting"
fi

done
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 7

检查给定 pid 的进程是否存在的经典方法是将其发送 \xe2\x80\x9csignal\xe2\x80\x9d 0

\n
kill -0 "${_pid}"\n
Run Code Online (Sandbox Code Playgroud)\n

如果进程存在,则将以代码 0 退出,否则以代码 1 退出,并且不会以任何方式影响正在运行的进程。

\n

kill进程需要有足够的权限才能向目标进程发送信号(由与目标进程相同的用户运行,或root,或具有同等权限)。

\n