Ubuntu15.04 删除/sbin/upstart与孤儿进程收养的问题

使用ubuntu 15.04的用户在fork进程后如果子进程成为孤儿进程那么就会发现一个问题,那就是收养孤儿进程的不是我们熟悉的PID为1的init,而是一个在/sbin的upstart。那么这个进程是什么呢。

不妨先看一下这个进程:


那他的父进程呢,根据PID我们找到他的父进程:


发现他的父进程就是ubuntu图形化界面的进程。

通过他所在的父目录可以看出他是一个管理系统的命令。他也是开机进入用户时启动。上网查了一下这个进程的功能是:用于linux开机自动启动某些后台服务,同时还承担监控这些服务运行状态的功能。

ubuntu不错的一个成就就是用upstart代替init的一部分功能吧,之所以其他的linux发行版本没有这么做,大多是因为有着自己的考虑。upstart就是在ubuntu15.04中在图形化界面收养孤儿进程的进程。为什么我说是图形化界面下的收养孤儿进程的进程呢?


那么就可以作死一下了。为什么一定是upstart收养孤儿进程,我把它关掉,总不能归他收养了吧。

第一步,kill掉upstart。因为upstart本身属于用户,所以被kill掉了,接着就屏幕一卡注销了。我想这个大概与他的父进程是lightdm且当前运行的是图形化界面有关把。也就是upstart这个后台服务可能跟图形界面有关。

第一步作死失败,那就索性把他源文件删除或移动!

第二步,想了想,为了不作大死,还是移动到家目录下吧。移动完成以后,kill掉正在进行的进程upstart,注销后,再进去,结果直接注销又跳出来了,再进入的时候同样,于是不停的注销,最后的结果是进不去图形界面里面去了!(当时有点小慌张)


鼓捣了半天,偶然看到网上对upstart有这样一句描述:upstart的运行级别3不是在text模式,而且也不能通过改变运行界别来改变进入text模式。

这句话告诉我们,upstart跟文本界面是没有关系的,所以直接ctrl alt F1进入文本界面,然后将文件移回,进入图形界面登录,又恢复正常了。


那么这个时候想到一个问题,既然在upstart无法影响文本界面的话我们不妨进入文本界面进行一下操作。发现文本界面如果kill掉upstart是没有任何影响的,只会注销图形化界面,我这时候查看孤儿进程的收养者,发现变成PID为1的init了。一切大概就明了了。


小结:/sbin/upstart这个文件运行后的进程是与图形化界面息息相关的,两者没有一个,另外一个也不会存在。upstart是在图形化界面下的一个后台的守护程序。在图形化界面收养孤儿进程。但是在文本界面下,一切都与upstart无关了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值