nohup命令(Linux终端启动后台运行程序)

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

原文地址:https://www.cnblogs.com/uestc-mm/p/11970578.html