Sep 19

Ubuntu中万恶的Upstart 不指定

chirs , 22:30 , 快乐机器 , 评论(2) , 引用(0) , 阅读(7730) , Via 本站原创 | |
PS:今天在服务器上安装了。ubuntu-10.04-server-amd64版本。
因为要安装oracle企业版本。所以又在线安装了GNOME基本版本。
ORACLE安装好了,以及LDAP,JDK,TOMCAT都初建了好。
做到最后收尾工作了,修改一下启动方式吧,让系统以后启动自动进入文本模式。
问题来了。以前改变INIT值的方式不行了。
最后总算找到万恶的根源:Upstart

1.Debian下的三大神器sysv-rc-conf, update-rc.d,rcconf,全部不起作用,明明里面已经显示GDM是不启动了,可是他还是启动。
2.自己切换到rc3.d下面去看,就发现问题了,根本就没有gdm的启动连接
3.网上找了一些资料,都是非常陈旧的,比如,已经被10.04里面的upstart废弃的event.d,也是频繁出现在所谓的教程里面。
4.在Ubuntu下,运行级别的定义被迁移到了 /etc/init/rc-sysinit.conf,当然,他们在这里面加入的对inittab的支持,但是若按照同systemd一样的标准来看,这些shell脚本是“有害的”!

最后总算找到解决办法,实际上有两种方法:
1.内核级别的:
nano /etc/default/grub

修改
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

为:
GRUB_CMDLINE_LINUX_DEFAULT=” text”


然后运行下sudo update-grub2就可了
其实这个方法也可以在开机的时候按下grub2中的e,手动编辑为text,但是那是一次性的

2.基于upstart的”正统”方法:
ubuntu的upstart的体系下,/etc/init.d里面基本上都是连接到/lib/init/upstart-job的软连接,所以,对 initscripts的请求全部转化为upstart事件,upstart系统对启动项目的管理全部根据/etc/init里面的配置文件来启动,可以启动gdm的事件就让人咂舌
start on (filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger))

stop on runlevel [016]


可见,一旦发生文件系统初始化,DBUS总线启动和发生graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udevtrigger 这里面的任何一个事件,GDM就会被启动,只在运行级别在016的时候,GDM不启动。
所以,事件也就明了了、要在upstart层面干掉gdm,把上面的启动相关事件注释掉,改写下就行了


start on (filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger)
and runlevel [245])
stop on runlevel [0136]



所以,
就算你清空整个rc3.d,upstart根本不管你。

如此这般,sysv-rc-conf, update-rc.d,rcconf,这三大神器,似乎就和残废了一样了
Tags: , ,
w
2016/07/04 14:00
pig
rainy14f@yahoo.com Homepage
2011/07/18 09:43
Ubuntu 10.04以后就用Upstart了,熟悉以后这个东东确实比较方便的。
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]