Linux shell中运行可执行程序后加上&的作用 | 您所在的位置:网站首页 › 汽车号牌是什么材质的 › Linux shell中运行可执行程序后加上&的作用 |
学习UNP时,学到了在命令后加上字符“&”后,退出shell,运行的命令可以继续运行。不解原因,并到网上搜索了以下,明白了! 以下是搜索到的片段: & 放在启动参数后面表示设置此进程为后台进程 默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。 如: tianfang > run & [1]11319 tianfang > ./game.e 1 & 进程切换到后台的时候,我们把它称为job。切换到后台时会输出相关job信息,以前面的输出为[1]11319例:[1]表示jobID是1,11319表示进程ID是11319。切换到后台的进程,仍然可以用ps命令查看。 前后台间切换 可以通过bg (background)和fg(foreground)命令将其在前后台间状态切换。 守护进程 如果一个进程永远都是以后台方式启动,并且不能受到Shell退出影响而退出,一个正统的做法是将其创建为守护进程。守护进程值得是系统长期运行的后台进程,类似Windows服务。守护进程信息通过ps–a无法查看到,需要用到–x参数,当使用这条命令的时候,往往还附上-j参数以查看作业控制信息,其中TPGID一栏为-1就是守护进程。 tianfang> ps xj PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 953 1190 1190 1190 ? -1 Ss 1000 0:00 /bin/sh/usr/bin/startkde 1 1490 1482 1482 ? -1 Sl 1000 0:00 /usr/bin/VBoxClient–seamless 1 1491 1477 1477 ? -1 Sl 1000 0:00 /usr/bin/VBoxClient–display 创建守护进程最关键的一步是调用setsid函数创建一个新的Session,并成为SessionLeader。成功调用该函数的结果是: 创建一个新的Session,当前进程成为SessionLeader,当前进程的id就是Session的id 创建一个新的进程组,当前进程成为进程组的Leader,当前进程的id就是进程组的id 如果当前进程原本有一个控制终端,则它失去这个控制终端,成为一个没有控制终端的进程。 更多请参考:http://www.cnblogs.com/TianFang/archive/2013/01/23/2872645.html |
CopyRight 2018-2019 实验室设备网 版权所有 |