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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM