不怕被 ^c 中断
在 vim 的一般模式下,按下 ^z 这两个按键,屏幕会出现[1],表示这是第一个工作,而那个+代表最近一个被丢到背景的工作,且目前在背景下预设会被取用的工作(与 fg 这个指令有关)。而那个 stopped 则代表目前这个工作的状态,在预设的情况下,使用 ^z 丢到背景当中的工作都是 暂停 的状态
jobs [-lrs]
选项与参数:
-l 除了列出job number 与指令串之外,还会列出 PID 的号码
-r 仅列出正在背景 run 的工作
-s 仅列出正在背景中 stop 的工作
输出的信息当中,有 +- 号,+ 代表预设的取用工作,输入 fg 指令时,会把+的指令拿到前景当中来处理
fg %jobnumber
选项与参数:
%jobnumber 工作号码(数字)。注意,那个%时可有可无的
fg - # 代表将 - 号的那个工作号码拿出来
将背景当中的工作直接移除,或者是重新启动
kill -signal %jobnumber
kill -l
选项与参数:
-l 列出目前kill能够使用的讯号(signal)
signal 代表给与后面接的那个工作什么样的指示。用 man 7 signal 可知:
-1 重新读取一次参数的配置文件(类似 relode)
-2 代表与由键盘输入 ^c 同样的动作
-9 立刻强制删除一个工作
-15 里正常的进程方式终止一个工作。与 -9 是不一样的
kill 后面接的数字默认会是 PID,如果想管理 bash 的工作控制,就得要加上 %数字 了
工作管理的背景依旧与终端有关,如果脱机了,放在当前的bash中的背景工作也会被中断掉
nohup 可以让你在脱机或者注销系统后,还能够让工作继续进行
nohup [指令与参数] # 在终端机前景中工作
nohup [指令与参数] & # 在终端机背景中工作
nohup:ignoring input and appending output to 'nohup.out' # 会告知这个讯息
如果你想要让背景的工作在你注销后还能够继续执行,那么使用nohup搭配&是不错的运作情景
ps aux # 观察系统所有的进程数据
ps -lA # 能够观察所有的系统数据
ps axjf # 连同部分进程树状态
选项与参数:
-A 所有的 process 均显示出来,与 -e 具有同样的效用
-a 不与 terminal 有关的所以 process
-u 有效使用者(effective user)有关的 process
x 通常与a这个参数一起使用,可列出较完整信息
输出格式规划:
l 较长、较详细的将该PID的信息列出
j 工作的格式(job format)
-f 做一个更为完整的输出
ps这个指令的 man page 不是很好查阅,写的非常庞大。建议直接背两个比较不同的选项,一个是只能查阅自己 bash 进程的 ps -l,一个则是可以查阅所有系统运行的进程 ps aux(注意 ps aux 没有哪个-号)
top [-d 数字] | top [-bnp]
选项与参数:
-d 后面可以接秒数,就是整个进程画面跟新的秒数。预设是 5 秒
-b 以批次的方式执行 top ,还有更多的参数可以使用
通常会搭配数据流重定向来将批次的结果输出成为文件
-n 与 -b 搭配,意义是,需要进行几次top的输出结果
-p 指定某些个PID来进行观察检测而已
在top 执行过程当中可以使用的按键指令:
? 显示在top当中可以输入的按键指令
P 以 CPU 的使用资源排序显示
M 以 Memory 的使用资源排序显示
N 以PID来排序
T 由该process使用的CPU时间累计(TIME+)排序
k 给与某个PID一个讯号 (signal)
r 给与某个PID重新制定一个nice值
q 离开top软件的按键
top 预设使用 CPU 的使用率作为排序的重点
pstree [-AIU] [-up]
选项与参数:
-A 各进程树之间的连接以ASCII字符来连接
-U 各进程树之间的里连接以万国码的字符来连接。在某些终端接口下可能会有错误
-p 并同时列出每个 process 的PID
-u 并同时列出每个process 的所属账号名称
kill -signal PID
kill 可以帮我们将这个signal传送给某个工作(%jobnumber)或者是某个PID(直接输入数字)。要再次强调的是:kill 后面直接加数字与加上 %number 的情况是不同的!
killall [-iIe] [command name]
选项与参数:
-i interactive的意思,交互式的,若需要删除时,会出现提示字符给用户
-e exact的意思,表示 后面接的command name 要一致,但整个完整的指令不能超过15个字符
-I 指令名称(可能含参数)忽略大小写
要删除某个进程,可以使用PID或者时启动该进程的指令名称,而如果要删除某个服务的话,最简单的方法就是利用killall, 因为他可以将系统当作所有以某个指令名称启动的进程全部删除