1、进程的前台启动与后台启动
在Shell命令行中输入并执行某条命令,会启动一个相应的进程。默认情况下,我们所启动的进程属于前台进程,前台进程会将执行过程中产生的相关信息显示在终端上, 并且在进程的执行过程中会占据当前终端。如果进程没有结束, 则用户不能在当前终端中再进行其他的操作。
如果在要执行的命令后面加上一个“&”符号, 则此时进程将转到当前终端的后台运行, 其执行结果不在屏幕上显示, 该进程也不会占据当前终端, 用户仍可以继续执行其他的操作。后台启动适合那些运行期间不需要用户干预或执行时间较长的程序。
除在命令后面加“&”符号之外, 我们还可以按<Ctrl+Z>组合键将一个进程转入后台,只不过通过这种方式转入后台的进程将处于停止状态。bg (background) 命令可以使被挂起的进程在后台继续执行。

(1)nc命令:开放本机TCP端口
选项:“-l”选项表示 listen, “-p”选项表示 port。

   [root@mysqldb proc]# nc -lp 2222
   [root@mysqldb proc]# nc -lp 2222 &
   [1] 18355

这样 nc 命令就会被自动放到后台去执行,同时显示出一行信息 ”[1] 69429", 其中的 "[1]“表示正在当前终端后台运行的任务的编号, “18355” 则是 nc 命令所产生的进程的 PID。
(2) jobs 命令:查看当前终端中正在后台运行的进程任务
选项:“-l”选项可以同时显示该进程对应的PID。

[root@mysqldb proc]# jobs -l
   [1]+ 25901 Running                 nc -lp 2222 &

在jobs 命令的输出结果中, 每一行记录对应一个后台进程的状态信息, 行首的数字表示该进程在后台的任务编号, “+”号表示这是默认最近的一个后台命令。

(3)fg(frontground)命令:将后台进程再次转到前台来执行
在使用 fg 命令时,需要指定后台进程对应的任务编号。

[root@mysqldb proc]# fg 1

如果需要结束一个后台进程,那么可以通过这种方式, 先将其转到前台, 然后再用<Ctrl+C>组合键强制终止。

(4)bg(background)命令:可以使被挂起的进程在后台继续执行。

[root@mysqldb proc]# bg 1
   [1]+ nc -lp 2222 &

2、解除进程与终端之问的关系
无论是通过在命令后面加 “&” 符号而后台执行的进程, 还是通过<Ctrl+Z>组合键而转往后台的进程, 它们都与当前终端相关。 其实只要是由用户执行命令所打开的交互进程都是与终端相关的,也就是说,如果把终端关闭,那么该终端中的所有进程也会自动关闭。之所以会这样, 是因为当前终端是所有在其中运行的进程的父进程, 它是一个会话领导者, 所以只要将它关闭, 那么终端中所有的子进程自然也将被关闭。
如果希望某些进程能够始终在后台运行, 那么可以通过 nohup 命令解除其与当前终端之间的关系。

   [root@mysqldb ~]# netstat -antp | grep ":8000"
   [root@mysqldb ~]# nc -lp 8000
        [root@mysqldb ~]# nc -lp 8000 &
        [1] 17926
        [root@mysqldb ~]# ps -ef | grep -i "17926" | grep -v "grep"
        root      17926  17202  0 05:24 pts/0    00:00:00 nc -lp 8000
        [root@mysqldb ~]# ps -ef | grep -i "17202" | grep -v "grep"
        root      17202  17194  0 04:40 pts/0    00:00:00 -bash
        root      17926  17202  0 05:24 pts/0    00:00:00 nc -lp 8000
        [root@mysqldb ~]# nohup nc -lp 8000 &
        [1] 18289 
        [root@mysqldb ~]# ps -ef | grep -i "18289" | grep -v "grep"
        root      18289      1  0 05:32 ?        00:00:00 nc -lp 8000
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐