一.将程序设置为后台运行
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.