文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>不同运行级别下自动启动和关闭进程

不同运行级别下自动启动和关闭进程

时间:2005-12-24  来源:AmosHe

不同运行级别下自动启动和关闭进程

整理自:http://forum.ubuntu.org.cn/viewtopic.php?t=5303&start=0&postdays=0&postorder=asc&highlight=%E5%90%8C%E6%AD%A5

/etc/rcS.d/目录中的内容是在启动时自动运行的脚本,一般用于初始化程序,启动daemon
目录内文件的命名规则是Xnnaaaaaa,X可以为S或K,S是指启动这个程序,K指停止这个程序;nn是两位数字,指定这个程序的启动顺序,越小越先启动;aaaaaa为程序的名字,长度任意,其实这一段没有意义,具体启动那个程序要看这个符号链接是指向那个文件。举个例子

代码:
$ cd /etc/rcS.d/
$ ls -l S*
S02mountvirtfs                      S30procps.sh    S40networking
S04udev                             S35mountall.sh  S41hotplug-net
S05bootlogd                         S36mountvirtfs  S48console-screen.sh
S05keymap.sh                        S36udev-mtab    S50alsa-utils
S07hdparm                           S38pppd-dns     S50hwclock.sh
S10checkroot.sh                     S39dns-clean    S51ntpdate
S15linux-restricted-modules-common  S39ifupdown     S55bootmisc.sh
S18ifupdown-clean                   S39readahead    S55urandom
S20module-init-tools                S40hostname.sh  S70screen-cleanup
S22hwclockfirst.sh                  S40hotplug      S70xorg-common
S30checkfs.sh                       S40ifrename     S75sudo

$ ls -l S51ntpdate
lrwxrwxrwx  1 root root 17 2005-10-25 00:51 S51ntpdate -> ../init.d/ntpdate


S51ntpdate,以S开头表示要启动它;51表示它将会比S50hwclock.sh先启动,比S55bootmisc.sh后启动;ntpdate无意义,只做说明和区分其它S51开头的程序;它为符号链接,指向../init.d/ntpdate,也就是/etc/init.d/ntpdate。于是启动时系统就会运行

代码:
/etc/init.d/ntpdate start


如果把名字改为K51ntpdate,那么系统启动时会运行

代码:
/etc/init.d/ntpdate stop


当然,扯远一点,这里如果要关闭启动时寻找ntp.ubuntu.com,则改为K51ntpdate在我看来不是最好的办法,在rcS.d里面放Knnaaaaaa似乎没有太大意义,要么把这个文件删掉,或者改为_Snnaaaaaa,这样也不会启动,也不会运行停止脚本,而且ls的时候依然是排序的,另外有些时候update软件的时,会自动把K变成S,用_Snnaaa的话就可以看出来是否添加了自己之前已经不要的启动项。

再比如,要在启动时运行tomcat

如果装好了tomcat,那应该有/etc/init.d/tomcat吧,那么:

代码:
sudo ln -sf ../init.d/tomcat /etc/rcS.d/S70tomcat

70也可以是别的数值,看你需要,不过要大于40,最好在60以后,因为40以后才有网络,60以后才对过表,具体见/etc/rcS.d/README。

如果是解压版的tomcat,比如是运行/path/tomcat -a 1 -b 2
那就写个脚本S70tomcat

代码:
#!/bin/sh
/path/tomcat -a 1 -b 2


然后放到/etc/rcS.d/目录里就可以了。

正常的服务脚本应该有1个参数,此参数有一下几种可能
start: 启动服务
stop: 停止服务
restart: 重启服务,大部分都是通过stop然后start实现的
reload: 重新读取配置
force-reload: 强迫重新读取配置,比较常见就是restart

当然如果要简化的话就不必考虑这些了,就像上面那个例子一样,一律看成start

而现命令是/opt/tomcat/bin/startup.sh
那就很简单了,直接

代码:
ln -sf /opt/tomcat/bin/startup.sh /etc/rcS.d/S70tomcat


以后启动时tomcat也就自动启动了。假设还有/opt/tomcat/bin/shutdown.sh用于停止tomcat服务,那么

代码:
ln -sf /opt/tomcat/bin/shutdown.sh /etc/rc0.d/K10tomcat
ln -sf /opt/tomcat/bin/shutdown.sh /etc/rc6.d/K10tomcat


就可以在关机和重启机器时自动关闭tomcat了。

另外启动和关闭是都是以root权限执行/etc/rcN.d/里面的程序的,所以无所谓sudo啦。

关于此方面介绍的文档可直接查看脚本文件,不过脚本都放在/etc/里面了,这些脚本注释得都很好,有什么不明白的就直接读一下脚本好了。比如之前讨论的启动或切换runlevel会做那些操作,只要看一下/etc/init.d/rc就明白了。

如果还对启动到runlevel之前,也就是linux在initrd阶段做什么感兴趣,则可以

代码:
gunzip -c /boot/initrd.img-******-**-** | cpio -i

然后读读里面的脚本。
相关阅读 更多 +
排行榜 更多 +
马里奥赛车世界游戏手机版下载

马里奥赛车世界游戏手机版下载

赛车竞速 下载
无畏契约皮肤开箱器手游下载

无畏契约皮肤开箱器手游下载

休闲益智 下载
旭日之城官方正版下载

旭日之城官方正版下载

策略塔防 下载