1。ps命令查看进程。ps -aux查看所有进程。可以用grep提取相关的部分进程,如只看python有关的:ps -aux |grep python。
进程状态:R运行中,T暂停,S休眠静止。
和进程有关的几个命令:暂停kill -STOP pid,恢复kill -STOP pid,停止kill pid。
https://blog.csdn.net/xsj_blog/article/details/79551611
2。运行命令后,crtl+d退出当前shell;crl+c结束当前进程;ctrl+z暂停当前进程,并且会出现jobsID,如1。想恢复的话,fg 1恢复到前台,bg 1恢复到后台;向停止job,用kill %JobID。查看所有jobs用jobs命令。注意:jobs只存活与本次shell,退出shell所有jobs停止。https://blog.csdn.net/sxhlovehmm/article/details/41318111
3。如果想直接在后台运行,在命令后面加&,此时会直接显示jobsID和PID。
4。退出shell时所有进程会终止。想让程序继续运行的话,可以在运行时前面加一个nohup。
https://blog.csdn.net/cneducation/article/details/72235204
nohup的缺点是,应用程序没有交互界面了,程序的输出将会输出的一个xxx.out文件中,而且以后无法在界面控制程序的结束。
https://www.jianshu.com/p/e5ed59ebad17
https://www.cnblogs.com/baby123/p/6477429.html
5。输入和输出重定向。
正确结果(stdout)输出到filename:命令 1>filename;命令 1>>filename(追加)。1可省略。注意:命令结束后才会写入文件,因为有缓存,可搜索flush。如果进程被kill的话,就没有任何输出了。
错误结果(stderr)输出到filename:命令 2>filename;命令 2>>filename(追加)。
同时输出stdout和stderr到两个文件:命令 2>filename2 1>filename1
输出stdout和stderr到一个文件(覆盖):命令 1>filename 2>>filename,err要以追加的形式,否则就只剩最后的err记录了。
简化的写法:命令 >filename 2>&1;命令 &>filename。追加:前面的>换成>>。注意:这里的&不是后台的意思,如果要放入后台运行,要在最后再加一个&。
对于python脚本,可以在脚本前面加:sys.stdout =open('stdout.log', 'a') ,sys.stderr =open('stderr.log', 'a') 。这时候执行的时候再重定向就不起作用了,因为还没到print的步骤,就已经把stdout输出到别的地方去了。
https://blog.csdn.net/liucy007/article/details/90207830
一段简单的试验代码
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 import time 4 import sys 5 sys.stdout =open('stdout.log', 'a') 6 sys.stderr =open('stderr.log', 'a') 7 a=0 8 while a<1000: 9 print (a) 10 with open ('log.txt','a') as f: 11 f.write(str(a)+'\n') 12 a=a+1 13 time.sleep(1) 14 # 一个error: 15 adsfsdf