ssh-如果尚未运行,则在后台执行脚本?

ssh-如果尚未运行,则在后台执行脚本?

如果 Python 脚本尚未运行,我该如何在后台执行它? cron 上有一个示例。

答案1

如果您希望脚本在启动时启动一次并且理论上它会一直运行,那么您应该将其作为服务添加到 init.d 中,并设置适当的运行级别。

当然,如果它下降了,你就会想再上升。

为此,您可以让 shell 脚本运行 ps -aux | grep 'nameOfYourScript'。当然,不要包含也会匹配的 grep 命令,哈哈。让该脚本每五分钟使用 cron 检查一次,如下所示 */5 * * * * user checkScript.sh

您制作的检查脚本可以用于启动该程序。

答案2

你可以做这样的事情:

#!/bin/bash

# count the number of processes that match "NameOfProcess" but 
# exclude the grep process itself
pc=`ps -ef |grep "NameOfProcess" |grep -v grep |wc -l`

# if pc > 0, the process is already running and we can exit.
if [ $pc -gt 0 ] ; then
    echo "Application is already running, exiting."
    exit 0
fi

# othewise start the program
/path/to/program

将其放入 crontab 中或从以下位置启动

nohup /path/to/script.sh &

nohup 将确保退出 ssh 会话时进程不会关闭。另一种方法是screen

相关内容