12-linux服务器 sh自启动脚本
screenrun.sh自启脚本
#!/bin/bash echo "screenDuration_server start... " #killall python3 sleep 0.5 pushd /home/rootgpu1/interface /home/rootgpu1/miniconda3/bin/python screenDuration.py & sleep 1 while true pid_array=("screenDuration.py") do for pid_value in ${pid_array[@]} do pid_check=`ps -ef|grep "$pid_value"|grep -v grep|wc -l` if [ $pid_check -eq 0 ] then /usr/bin/python3 $pid_value & fi sleep 1 done done
1)切换指定目录,并将当前目录压入目录栈(即脚本当前目录)
pushd /home/rootgpu1/interface
2)在后台运行 screenDuration.py 文件(服务器python所在目录)
/home/rootgpu1/miniconda3/bin/python screenDuration.py &
3)检查当前是否有该脚本在运行,返回运行进程的数量
pid_check=`ps -ef|grep "$pid_value"|grep -v grep|wc -l`
注意:如果出现 nohup: failed to run command './screenrun.sh': Permission denied 报错,则需要为当前脚本添加执行权限
nohup /home/rootgpu1/interface/screenrun.sh &
启动脚本命令
&:表示将该命令或脚本放入后台运行, 即&方式启动会有进程号
nohup : 表示不挂断的运行,注意并没有后台运行的功能,即用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;
nohup ./screenrun.sh &
查看nohup.out文件内容
1)前台实时查看nohub.out文件内容
tail -f nohup.out
2)输出文件最后100行
tail -n 100 nohup.out