当前位置: 首页 > 工具软件 > Upstart > 使用案例 >

Ubuntu的Upstart

涂飞航
2023-12-01
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,这三大神器,似乎就和残废了一样了
 类似资料: