Linux shell中运行可执行程序后加上&的作用 您所在的位置:网站首页 汽车号牌是什么材质的 Linux shell中运行可执行程序后加上&的作用

Linux shell中运行可执行程序后加上&的作用

2024-03-16 21:39| 来源: 网络整理| 查看: 265

学习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 实验室设备网 版权所有