Skip to content

Latest commit

 

History

History
30 lines (18 loc) · 1.14 KB

jobs.md

File metadata and controls

30 lines (18 loc) · 1.14 KB

作业控制

在跟控制终端关联的进程中。有前台(fg)和后台(bg)的区别。

在前台的进程接收键盘输入。

当前正在前台运行的进程,通过按键ctrl-c,可以发信号给进程,让它尽快退出。

通过在命令的最后加上&符号,让shell直接把这个命令放到后台运行。

通过按键ctrl-z,把当前在前台的进程放到后台去。通过jobs可以查看当前所有的作业。

$ jobs
[1]-  Stopped                 vim
[2]+  Stopped                 emacs
[3]   Running                 sleep 60 &

方括号中间的数字代表job id。+只是如果直接执行fg时,这个进程会被从后台再放回前台。

或者通过指定job id来把特定的job放回前台,比如fg %1将会把vim放回前台。

这个job#同样可以被kill命令使用,例如kill %3这种写法。

nohup

nohup把任务和控制终端分离,当终端断线时,任务不会受到信号的影响,从而退出。

  • 如果stdin是终端,nohup把它重定向到不可读的文件
  • 如果stdout是终端,重定向到nohup.out文件
  • 如果stderr是终端,重定向到stdout