ubuntu服务器后台运行程序

之前一直在训练汉字识别,和交大伙伴合作,用了他的服务器

命令:

nohup python train.py &

弹出了 [1] 4367 

[1] 是任务编号,就是jobsnumber

4367 是进程号,pid

还会有输出一行 appendding output to 'nohub.out' 就是会把一些print打印出来的信息写入到'nohub.out'这个文件

最后你回车就行,此时程序已经在后台运行了

输入:

ps -ef | grep 4367 

就能看到你刚运行的程序,即时是退出终端后,下次再进也依然在

ps -A  

列出所有的进程

杀死进程命令,比如把刚那个后台程序终止:

kill 4367

4.补充几个相关指令:

** 
引用自 
fg、bg、jobs、&、nohup、ctrl + z命令

jobs
1
前有多少在后台运行的命令 
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息;

fg
1
将后台中的命令调至前台继续运行 
如果后台中有多个命令,可以用fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

bg
1
将一个在后台暂停的命令,变成继续执行 (在后台执行) 
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

将任务转移到后台运行: 
先ctrl + z;再bg %jobnumber,这样进程就被移到后台运行,终端还能继续接受命令。注意后台变前台,直接fg%jobnumber

前台变后台,先ctrl + z,再bg %jobnumber

概念:当前任务 
如果后台的任务号有2个,[1],[2];如果当第一个后台任务顺利执行完毕,第二个后台任务还在执行中时,当前任务便会自动变成后台任务号码“[2]” 的后台任务。所以可以得出一点,即当前任务是会变动的。当用户输入“fg”、“bg”和“stop”等命令时,如果不加任何引号,则所变动的均是当前任务

这篇文章写的也挺详细的

https://blog.csdn.net/zhshow/article/details/6042350

猜你喜欢

转载自blog.csdn.net/xd_wjc/article/details/84836570