Ric*_*lka 24
最简单的方法,使用 pgrep
在 crontab 中:
* * * * * pgrep processname > /dev/null || /path/to/processname -args0 -args1
Run Code Online (Sandbox Code Playgroud)
运行脚本,而不是直接运行程序。有很多可能性。例如 :
MYPROG="myprog"
RESTART="myprog params"
PGREP="/usr/bin/pgrep"
# find myprog pid
$PGREP ${MYPROG}
# if not running
if [ $? -ne 0 ]
then
$RESTART
fi
Run Code Online (Sandbox Code Playgroud)
如果前一个实例尚未完成,此脚本将不会再次运行。如果您不想在另一个特定进程正在运行时运行某些程序,请参阅 harrymc 的脚本。
DATE=`date +%c`;
ME=`basename "$0"`;
LCK="./${ME}.LCK";
exec 8>$LCK;
if flock -n -x 8; then
echo ""
echo "Starting your script..."
echo ""
[PUT YOUR STUFF HERE]
echo ""
echo "Script started $DATE";
echo "Script finished `date +%c`";
else
echo "Script NOT started - previous one still running at $DATE";
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31437 次 |
| 最近记录: |