《快乐的Linux命令行》笔记(14)
Contents
#《快乐的 Linux 命令行》
这个xlogo
命令可以在显示屏上显示一个X
,可以随着拖动变大小,必须要有显示器才行。
#&
在命令后加&
后台执行:
1 | command & |
1 | onns@onns-desktop:~$ xlogo & |
[1] 3642
是 shell
特性的一部分,叫做任务控制
(job control)。
任务号
(job number)为1,PID 为3642。
1 | onns@onns-desktop:~$ ps |
jobs
命令列出从终端中启动了的任务:
1 | onns@onns-desktop:~$ jobs |
#fg
fg
命令让一个进程返回前台:
1 | fg %jobspec |
fg
命令之后接一个百分号和任务序号(jobspec)。
如果只有一个后台任务,那么jobspec
(job specification)是可有可无的。
1 | onns@onns-desktop:~$ jobs |
#ctrl z
停止进程,这么做通常是为了允许前台进程被移动到后台。
1 | onns@onns-desktop:~$ xlogo |
使用 fg
命令,可以恢复程序到前台运行,或者用 bg
命令把程序移到后台。
1 | onns@onns-desktop:~$ bg %2 |
#kill
kill
命令用来终止程序。
这个
kill
命令不是真的“杀死”程序,而是给程序发送信号。信号是操作系统与程序之间进行通信时所采用的几种方式中的一种。
1 | kill [-signal] PID... |
如果在命令行中没有指定信号,那么默认情况下,发送TERM
(Terminate,终止)信号。
- 编号
1
代表HUP
,挂起(Hangup)。这是美好往昔的残留部分,那时候终端机通过电话线和调制解调器连接到远端的计算机。这个信号被用来告诉程序,控制的终端机已经“挂断”。通过关闭一个终端会话,可以展示这个信号的作用。在当前终端运行的前台程序将会收到这个信号并终止。许多守护进程也使用这个信号,来重新初始化。这意味着,当一个守护进程收到这个信号后,这个进 程会重新启动,并且重新读取它的配置文件。Apache 网络服务器守护进程就是一个例子。 - 编号
2
代表INT
,中断。实现和 Ctrl-c 一样的功能,由终端发送。通常, 它会终止一个程序。 - 编号
9
代表KILL
,杀死。这个信号很特别。尽管程序可能会选择不同的 方式来处理发送给它的信号,其中也包含忽略信号, 但是 KILL 信号从不被发送到目标程序。而是内核立 即终止这个进程。当一个进程以这种方式终止的时候, 它没有机会去做些“清理”工作,或者是保存工作。 因为这个原因,把 KILL 信号看作最后一招,当其它 终止信号失败后,再使用它。 - 编号
15
代表TERM
,终止。这是 kill 命令发送的默认信号。如果程序仍然 “活着”,可以接受信号,那么这个它会终止。 - 编号
18
代表CONT
,继续。在一个停止信号后,这个信号会恢复进程的运 行。 - 编号
19
代表STOP
,停止。这个信号导致进程停止运行,而不是终止。像 KILL 信号,它不被发送到目标进程,因此它不能被忽略。
进程,和文件一样,拥有所有者,所以为了能够通过 kill
命令来给进程发送信号,你必须是 进程的所有者(或者是超级用户)。
kill -l
可以得到一个完整的信号列表:
1 | onns@onns-desktop:~$ kill -l |
不是很常用,蛮看一下罢了。