Linux后台运行命令:
nohup sh run.sh &
nohup 是 no hang up 的缩写,就是不挂断的意思。
nohup和&的区别
& : 指在后台运行
nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
———————————————————————————————————————————
脚本run.sh:
#!/bin/sh
while true
do
process=`ps -ef| grep mysqld | grep -v grep`; #查询mysqld进程,grep -v grep去掉grep进程
if [ "$process" == "" ]; then
sleep 1;
echo "process 不存在,开始执行";
nohup python mysql.py &;
else
echo "process exsits";
break;
fi
done
或者:通过进程数判断进程是否运行,如果没有就启动程序
#!/bin/sh
while [ 1 ]; do
sleep 10
count=`ps -ef|grep send_to_mongo|grep -v grep|wc -l`
echo $count
if [ "$count" -eq 0 ];then
echo "start process....."
nohup python send_to_mongo.py &
else
echo "runing....."
fi
done
#启动此脚本时在后台运行:nohup