本文只介绍一种方法,就是用sysv-rc-conf管理Ubuntu的开机启动项,比如不让apache开机自动启动等等。
sysv-rc-conf是一个强大的服务管理程序。
背景知识
安装sysv-rc-conf
使用sysv-rc-conf
安装 rcconf
使用 rcconf
运行界面跟红帽子的 ntsysv 差不多。
使用中可能会遇到以下情况: 1,界面显示乱码,如果是远程用putty登陆,请把语言编码设置成 UTF-8
2,设置某项服务 启动/停用 选择ok退出,但再次进入界面,发现选项依旧。
3,即使使用 sudo rcconf 执行,进入界面发现配置已经更改,但程序开机依旧启动/停止。 使用 update-rc.d
update-rc.d 是Ubuntu下面自带的服务命令
Insert links using the defaults:
update-rc.d foobar defaults The equivalent dependency header would have start and stop dependencies on $remote_fs and $syslog, and start in runlevels 2-5 and stop in runlevels 0, 1 and 6. Equivalent command using explicit argument sets: update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 . More typical command using explicit argument sets: update-rc.d foobar start 30 2 3 4 5 . stop 70 0 1 6 . Insert links at default runlevels when B requires A update-rc.d script_for_A defaults 80 20 update-rc.d script_for_B defaults 90 10 Insert a link to a service that (presumably) will not be needed by any other daemon update-rc.d top_level_app defaults 98 02 Insert links for a script that requires services that start/stop at sequence number 20 update-rc.d script_depends_on_svc20 defaults 21 19 Remove all links for a script (assuming foobar has been deleted already): update-rc.d foobar remove Example of disabling a service: update-rc.d -f foobar remove update-rc.d foobar stop 20 2 3 4 5 . Example of a command for installing a system initialization-and-shutdown script: update-rc.d foobar start 45 S . stop 31 0 6 . Example of a command for disabling a system initialization-and-shutdown script: update-rc.d -f foobar remove update-rc.d foobar stop 45 S .
若需要開機時自動執行該服務,則必須製作相關的 link(連結檔) 放在 /etc/rc*.d 中。
若你去 /etc/rc*.d 這些目錄底下看,會看到很多檔案,它的檔名是有含意的 K 開頭是 kill , S 開頭是 start , 數字順序代表啟動的順序, 除了手動放置連結之外,利用 update-rc.d 也可很方便的幫我們完成這件事。 update-rc.d 指令會自動幫各個rc*.d目錄下建立link至/etc/init.d/下所指定的執行檔 例如: ln -s /home/user/backup/iptables.sh /etc/init.d/iptables.sh 上面這行指令的意思即是:我有一個 iptables.sh 檔放在 /home/user/backup 這個資料夾內,建立一連結檔放在 /etc/init.d/ 這資料夾內並命名為 iptables.sh 然後再下這行指令 update-rc.d -f iptables.sh defaults 則它就會自動的把iptables.sh放到各個 rc*.d 的目錄裡去,並設定好啟動順序 另一個update-rc.d使用範例介紹: 想要一開機就啟用在 init.d 中的某個 script 的符號連結的話,可執行下面的指令:(設定 vsftpd 一開機就執行) update-rc.d -f vsftpd defaults 想要在 runlevel 1,2,3 時以 20 的 sequencing priority number (normal) 來執行 /etc/init.d/lampp ,而在 runlevel 4,5 停止的話,可執行下面指令: (範例中的句點不可省略喔) update-rc.d vsftpd start 20 1 2 3 . stop 20 4 5 . 想要移除在 init.d 中的某個 script 的符號連結的話,可執行下面的指令: (移去 vsftpd 一開機就執行的狀態) update-rc.d -f vsftpd remove 最後可以 rcconf 來觀看 update-rc.d 設定後的結果,若沒有安裝可執行下列指令安裝 sudo apt-get install rcconf Ubuntu自动启动程序
直接改 /etc/rc0.d ~ /etc/rc6.d 和 /etc/rcS.d 下的东西,S开头的表示启动,K开头的表示不启动,
例如:想关闭 Red5 的开机自动启动,只需 #sudo mv /etc/rc2.d/S20red5 /etc/rc2.d/K20red5 就可以了。 首 先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写 到一个 文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的X windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc (1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在 /etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序! 要 启动scim (某一程序),我们首先要知道scim程序在哪里,用locate命令可以找到,scim在/usr/bin/scim这里,其中usr表 示是 属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到/etc/init.d里,然后在rc5.d里做一个相 应的软链接就可以了。 这个脚本其实很简单,就两行: #!/bin/bash /usr/bin/scim 第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。 还 需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这 样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接 还要起名为SXXX,这样系统才能让它随机启动。 在RH下,rc.local是默认启动的最后一个脚本文件,所以, 如果你想要随机启动,还有一种方法就是在rc.local的尾部加入/usr/bin/scim,这样就可以了。 Linux 自动启动程序 1.开机启动时自动运行程序 Linux 加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本),在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。 2.登录时自动运行程序 用 户登录时,bash首先自动执行系统管理员建立的全局登录script :/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。 因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。 3.退出登录时自动运行程序 退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令“tar -cvzf c.source.tgz *.c”,则在每次退出登录时自动执行 “tar” 命令备份 *.c 文件。 4.定期自动运行程序 Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。 例如,建立文件crondFile,内容为“00 9 23 Jan * HappyBirthday”,运行“crontab cronFile”命令后,每当元月23日上午9:00系统自动执行“HappyBirthday”的程序(“*”表示不管当天是星期几)。 5.定时自动运行程序一次 定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令: $ at 12:00 at>mailto Roger -s ″Have a lunch″ < plan.txt at>Ctr-D Job 1 at 2000-11-09 12:00 2000-11-09 12:00时候自动发一标题为“Have a lunch”,内容为plan.txt文件内容的邮件给Roger。?9 12:00 2000-11-09 12:00时候自动发一标题为“Have a lunch”,内容为plan.txt文件内容的邮件给Roger。er。ger。er。 (责任编辑:IT) |