您的位置:首页 > 运维架构 > Linux

Linux设置服务自启动的三种方式

2015-11-16 15:52 543 查看
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务主要用三种方式进行这一操作:ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)chkonfig 命令行运行级别设置ntsysv 伪图形运行级别设置 注意:1.这三种方式主要用于以redhat为基础的发行版 2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验 第一种方式:ln -s 建立启动软连接在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策
这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可复制代码[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh复制代码此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动如果需要在多个运行级别下设置自启动,则需建立多个软链接这种方式比较繁琐,适用于自定义的服务脚本如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
第二种方式:chkconfig如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别Tips:--list选项可查看指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态 第三种方式:ntsysv 伪图形ntsysv和chkconfig其实是一样的,只不过加上了图形而已启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3如果想自定义运行级别可使用ntsysv
--level方式 以上三种操作需要保证服务脚本文件可执行,并且要有root权限其中,第一种方式多用于自定义脚本,第二、三种多用于系统已存在的服务比如ftp、samba、ssh、httpd等等并且,要做相关设置需要弄清楚运行级别的问题 Tips:如果想手动启动某服务,传统的方式是 /etc/init.d 服务名 start 实际上还可以这样,service 服务名 start实例如下:自启动脚本:/usr/local/apache2/bin;./apachectl start文件位于/etc/rc.d/init.d下,名为apached,
注意要可执行.#chmod +x /etc/rc.d/init.d/apached //设置文件的属性为可执行#ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90apache //建立软连接,快捷方式#ln -s /etc/rc.d/init.d/apached /etc/rc0.d/K20apache在Red Hat 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 :/etc/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:00at>mailto Roger -s ″Have a lunch″ < plan.txtat>Ctr-DJob 1 at 2000-11-09 12:002000-11-09 12:00时候自动发一标题为"Have a lunch",内容为plan.txt文件内容的邮件给Roger。#!/bin/bashRESTART="........"
#里面写相应服务代码START="......."STOP=".........."case "$1" inrestart)$RESTARTecho "......";;start)$STARTecho "......";;STOP)$STOPecho "......";;*)echo "Usage: $0 {restart ¦ start ¦ stop}"exit 1esacexit 1脚本写完要修改一下权限 chmod u+x test.sh首先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写
到一个 文件里让系统能够按顺序执行,类似windows下的autorun.bat文件),另外在/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只链接它自己启动需要的相应的服务程序! 可以编写一个脚本程序,把它放到/etc/init.d里,然后在rc5.d里做一个相 应的软链接就可以了。还需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这 样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接 还要起名为SXXX,这样系统才能让它随机启动。命令记录:1)touch
/etc/rc.d/init.d/apache vi /etc/rc.d/init.d/apache chown -R root /etc/rc.d/init.d/apache chmod 700 /etc/rc.d/init.d/apache ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache #S 是start的简写、代表启动、K是kill的简写、代表关闭。60数字 代表启动的顺序。(对于iptv系统而言、许多服务都是建立在数据库启动的前提下才能够正常启动的、可以通过该数字就行调整脚本的
启动顺序)) apache的内容: #!/bin/bash #Start httpd service /server/apache/bin/apachectl start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: