1. nohup指令基本概念:
nohup: 不挂断的运行,并没有后台运行功能,用nohup运行命令可以使命令永久执行下去,和用户终端没有关系,断开SSH不影响运行,&是后台运行.
- nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。
- nohup 是 no hang up 的缩写,就是不挂断的意思。
- nohup命令:正在运的进程,在退出帐户时该进程也不会结束,可以使用nohup命令。该命令可以在退出帐户/关闭终端后继续运行进程。
- 在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
2. nohup指令基本使用格式:
nohup command > myout.file 2>&1 &
如上所示,在终端上运行上面形式的命令即可在关闭终端后继续运行后台指令command,myout.file功能主要用来保存command命令出现的error,出现错误或异常就会将相关信息保存在myout.file中。
相关的数字及符号的意义代表如下所示:
- 0 – stdin (standard input)
- 1 – stdout (standard output)
- 2 – stderr (standard error)
- & – bgrun (run in back ground)
上述指令重定向的意义在于,将stderr > stdout > myout.file.
3. 实测结果:
nohup python2 Sys_Status_MysqlSave.py > Mysql_out.log 2>&1 &
接下来我们需要使用jobs指令(或者:ps -aux | grep python)来查看后台运行的程序:
jobs
注:只有在当前命令行中使用 nohup和& 时,jobs命令才能将它显示出来。如果将他们写到 .sh 脚本中,然后执行脚本,是显示不出来的。
ps -aux | grep python
Reference:
nohup指令:https://www.cnblogs.com/jinxiao-pu/p/9131057.html
ps以及jobs区别:https://blog.csdn.net/maihilton/article/details/82781897
转载请注明出处!感谢GISPALAB实验室的老师和同学们的帮助和支持~