一:遇到的问题

       工作中,我们维护linux服务器时通常使用xshell或crt等ssh连接工具,当遇到需要长时间观察脚本或程序输出时,无法保证自己电脑忽然断电或断网,再或者我们用办公电脑连接服务器后往数据库里导入sql文件时,需要10多个小时又无法一直在电脑旁时,所以怎么办呢?这时就需要进程守护,就是说不能因为窗口关了程序就断了。


二:解决办法

2.1 使用nohup 

2.2  使用 supervisord 

2.3 使用screen


三:结果展示

3.1 【nohup】业务场景:后台运行xxljob的jar包。

nohup /opt/jdk1.8.0_271/bin/java  -jar /data/xxl-job.jar   > ./output.log 2>&1  &
  • 1.


3.2 【supervisord】业务场景:后台运行php脚本

1.安装supervisord
2.编辑ini文件
[root@overseas-alpha-task 07-30_10:46:30 ~]# cat /etc/supervisord.d/task3-zeus.ini 
[program:zeus_sms]
directory=/data/wwwroot/overseas_new_zeus/
command=/usr/local/php7112/bin/php think Sms
autostart=true
autorestart=true
process_name=%(program_name)s_%(process_num)02d
numprocs=1
stopsignal = QUIT
stopwaitsecs = 20
startsecs=1
startretries=50
redirect_stderr=true
stdout_logfile=/var/log/supervisor/zeus_sms.log
user=root
stdout_logfile_maxbytes = 50MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数

3.查看状态
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

3.3 【screen】业务场景:scp传包