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

 

posted @ 2024-10-25 14:43  马铃薯1  阅读(23)  评论(0编辑  收藏  举报