nohup后台运行&关闭后台程序



在跑时间比较长的程序,或者打印信息比较多,或者网络不稳定时,可以采用后台运行程序,然后把打印信息保存在文件中,等程序结束后再检查日志,完成该功能可以用以下命令


1.nohup python3 -u test.py >test.log 2>&1 &


2.回车


3.输入exit命令退出终端


4.关闭shell


注意:不能直接退出终端


其中,

1. 最后一个“&”表示后台运行程序

2. “nohup” 表示程序不被挂起

3. “python”表示执行python代码

4. “-u”表示不启用缓存,实时输出打印信息到日志文件(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)

5. “test.py”表示python的源代码文件

6. “test.log”表示输出的日志文件

7. “>”表示将打印信息重定向到日志文件

8. “2>&1”表示将标准错误输出转变化标准输出,可以将错误信息也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr)


 

查看后台运行程序及关闭参考博文https://blog.csdn.net/u013123046/article/details/80610931


有两个命令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的任务,换了终端就看不到了。而ps命令用于查看瞬间进程的动态,可以看到别的终端运行的后台进程。


查看后台应用


(1)jobs命令


        功能:查看当前终端后台运行的任务


       


       jobs -l选项可显示当前终端所有任务的PID,jobs的状态可以是running,stopped,Terminated。+ 号表示当前任务,- 号表示后一个任务。


(2)ps命令


          功能:查看当前的所有进程

         ps -aux | grep "test.sh"    #a:显示所有程序  u:以用户为主的格式来显示   x:显示所有程序,不以终端机来区分


关闭当前后台运行的命令


      kill命令:结束进程


     (1)通过jobs命令查看jobnum,然后执行   kill %jobnum


     (2)通过ps命令查看进程号PID,然后执行  kill %PID


       如果是前台进程的话,直接执行 Ctrl+c 就可以终止了


————————————————

    pkill命令结束进程

    pkill 进程名

例:pkill abc.exe  结束abc.exe进程


————————————————

版权声明:本文为CSDN博主「xiaoliyi185」的原创文章 ,横线后为本站增加内容

原文链接:https://blog.csdn.net/xiaoliyi185/java/article/details/90704812





版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,可随意转载(O ^ ~ ^ O),别忘了标明转载来源即可。

评论

分享:

支付宝

微信