centos7将程序设置为后台运行并说明如何结束后台项目

一.将程序设置为后台运行

  1.&

    运行程序时在后边加上&可以使自己重新掌握控制台,但如果程序有输出的内容,则不能达到我们本来想要的结果.如:

[root@localhost HomeCode]# python SaveArticel.py &
[1] 17865
[root@localhost HomeCode]# 2020-03-14 16:57:20 [INFO] [/opt/Project/ApiDS/HomeCode/Config.set_log] SaveArticel.py[line:39] [MainThread] 即将更新 2020-03-14 的数据
2020-03-14 16:57:25 [INFO] [/opt/Project/ApiDS/HomeCode/Config.set_log] DatabaseCode.py[line:52] [ThreadPoolExecutor-0_6] 价格 32292 2020-03-14已存在

    程序运行后,输出的内容依然会显示在控制台上,而且发现Ctrl+C并不能停止它的运行.

  2.nohup  command  &

    nohup可以使程序进入后台运行模式,并发现在运行文件同级目录下会生成一个nohup.out文件,里边会记录所有程序运行时返回的内容,所以要注意如果涉及到用户交互的项目则不适合使用nohup.如:

[root@localhost HomeCode]# nohup python SaveArticel.py &
[1] 18451
[root@localhost HomeCode]# nohup: ignoring input and appending output to ‘nohup.out’

    可以看到在执行了python程序后,并没有显示项目返回的内容,我们看一下nohup.out中的内容:

[root@localhost HomeCode]# cat nohup.out 
2020-03-14 16:51:37 [INFO] [/opt/Project/ApiDS/HomeCode/Config.set_log] SaveArticel.py[line:39] [MainThread] 即将更新 2020-03-14 的数据
2020-03-14 16:51:42 [INFO] [/opt/Project/ApiDS/HomeCode/Config.set_log] DatabaseCode.py[line:52] [ThreadPoolExecutor-0_26] 价格 35665 2020-03-14已存在

    刚好是1中控制台显示的内容.

二.杀死后台程序

  1.通过jobs -l查看后台项目进程

[root@localhost HomeCode]# jobs -l
[1]+ 19280 Running                 nohup python SaveArticel.py &

    可以看到python项目的状态是Running, 进程为19280

  2.通过kill -9 Process杀死进程

[root@localhost HomeCode]# kill -9 19280
[root@localhost HomeCode]# jobs -l
[1]+ 19280 Killed                  nohup python3 SaveArticel.py

    执行完kill命令后再通过jobs查看,可以看到状态变为Killed.

 

posted @ 2020-03-14 17:29  屁桃  阅读(3688)  评论(0编辑  收藏  举报