linux自定义开机启动服务和chkconfig使用方法

linux自定义开机启动服务和chkconfig使用方法

1. 服务概述
在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动,关闭的时候自动关闭。
将需要自动启动的脚本/etc/rc.d/init.d目录下,然后用命令chkconfig --add filename将自动注册开机启动和关机关闭。实质就是在rc0.d-rc6.d目录下生成一些文件连接,这些连接连接到/etc/rc.d /init.d目录下指定文件的shell脚本。

2. 手工创建服务
在/etc/rc.d/init.d目录下创建shell脚本,文件名auto_run。
设置脚本的运行权限chmod +x auto_run。
然后在rc0.d-rc6.d目录下分别创建文件连接。
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc2.d/S99auto_run
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc3.d/S99auto_run
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc5.d/S99auto_run
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc0.d/K01auto_run
ln -s /etc/rc.d/init.d/auto_run /etc/rc.d/rc6.d/K01auto_run

这样系统在启动的时候,就会运行auto_run 并加上start参数,等同于执行命令auto_run start。
在系统关闭的时候,就会运行auto_run,并加上stop参数,等同于运行命令auto_run stop。

创建连接的6条命令可以用命令chkconfig --add auto_run来完成,这样就简单多了,还不容易出错。
下面就介绍一下chkconfig命令。
3. chkconfig命令用法
语法:
chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset>
chkconfig [--level levels] name

  说明:
chkconfig提供一种简单的命令行工具来帮助管理员对/etc/rc[0-6].d目录层次下的众多的符号链接进行直接操作。
此命令使用是由chkconfig命令在IRIX操作系统提供授权。不用在/etc/rc[0-6].d目录下直接维护配置信息,而是直接在/etc/rc[0-6]下管理链接文件。在运行级别的目录下的配置信息通知在将会初始启动哪些服务。
Chkconfig有五个很明确的功能:为管理增加一个新的功能、删除一个功能、列出当前服务的启动信息、改变一个服务的启动信息和检测特殊服务的启动状态。
当chkconfig没有参数运行时,它将显示其使用方法。如果只给出了一个服务名,它将检测这个服务名是否已经被配置到了当前运行级别中。如果已经配置,返回真,否则返回假。--level选项可以被用做查询多个运行级别而不仅仅是一个。
如果在服务名之后指定了on,、off或reset,chkconfig将改变指定服务的启动信息。On或off标记服务被打开或停止,尤其是在运行级别被改变时。Reset标记重置服务的启动信息。
默认情况下,on或off选项仅对2、3、4、5有影响,而 reset影响所有的运行级。--level选项可以被用于指定哪个运行级别接收影响。
注意:对于每个服务,每一个运行级都有一个开始角本和一个结束角本。当开或关一个运行级时,init不会重新开始一个已经运行的服务,也不会重新停止一个未运行的服务。
选项:
--level levels
指定一个运行级别适合的操作。范围为0-7。
--add name
增加一个新的服务。
--del name
删除一个服务
--list name
显示服务的情况
RUNLEVEL FILES
每个通过chkconfig管理的服务在其init.d目录下的角本中都需要两行或多行的注释。第一行告诉chkconfig在默认情况下什么运行级别的服务可以开始,也就是所说的开始或结束的优先级别。如果服务没有默认的级别,建造将在所有运行级别中启动。a – 将用于代替运行级列表。第二个注释行包括对此服务的描述,可以通过反斜线符号扩展为多行。

示例,auto_run的前三行如下:
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
第一行,告诉系统使用的shell,所以的shell脚本都是这样。
第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80auto_run的文件连接,连接到/etc/rc.d/init.d目录下的的auto_run脚本。第一个字符是S,系统在启动的时候,运行脚本auto_run,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90auto_run的文件连接,第一个字符为K,系统在关闭系统的时候,会运行auto_run,添加一个stop,告诉脚本,现在是关闭模式。
注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig --add auto_run时,会报错。
4. 常见的错误
“服务不支持 chkconfig”:
请注意检查脚本的前面,是否有完整的两行:
#chkconfig: 2345 80 90
#description:auto_run
在脚本前面这两行是不能少的,否则不能chkconfig命令会报错误。
如果运行chkconfig老是报错,如果脚本没有问题,我建议,直接在rc0.d~rc6.d下面创建到脚本的文件连接来解决,原理都是一样的。

时间: 2024-10-26 17:47:00

linux自定义开机启动服务和chkconfig使用方法的相关文章

linux开机启动服务和chkconfig使用方法(转)

  每个被chkconfig 管理的服务需要在对应的/etc/rc.d/init.d 下的脚本加上两行或者更多行的注释. 第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级.如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级. 第二行对服务进行描述,可以用\ 跨行注释. 例如,random.init 包含三行: # chkconfig: 2345 20 80 # description: Saves and restores system entropy pool f

linux下开机启动DB2,WAS,TDS服务

  linux下开机启动DB2,WAS,TDS服务 参考链接: http://www.2cto.com/database/201207/141858.html www.2cto.com http://www.2cto.com/os/201207/141862.html 1.转到/etc/init.d 目录下. 以root身份执行 Shell代码 cd /etc/init.d 2.编写DB2启动脚本 Shell代码 vi startDB2 输入以下内容 Shell代码 #!/bin/sh # ch

systemd添加自定义系统服务设置自定义开机启动的方法_Linux

1.服务权限 systemd有系统和用户区分:系统(/user/lib/systemd/system/).用户(/etc/lib/systemd/user/).一般系统管理员手工创建的单元文件建议存放在/etc/systemd/system/目录下面. 2.创建服务文件 [Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network.targe

ARM开发板嵌入式Linux修改开机启动LOGO的方法

1.嵌入式 Linux LOGO显示原理 嵌入式Linux是直接在FrameBuffer的基础上.直接显示一个ppm格式的图象.它 kernel/drivers/video/fbcon.c中的fbcon_show_logo()完成,最大颜色支持224色而不常见的255色. 默认的logo文件是 drivers/video/logo/logo_linux_clut224.ppm. 2.制作流程 因为LINUX LOGO格式需要ppm格式来显示.这种格式是一种用ASCII来描述图像数据一种格式.一般

win8开机启动后黑屏解决方法

win8开机启动后黑屏解决方法   win8开机黑屏解决方法: 1.如果在电脑启动时能看到画面与windows系统的logo,但进入系统后黑屏是由于电脑系统设置的分辨率不正确,常见于笔记本重装系统后错误地设置了不支持的分辨率导致,建议外接显示器,调节到最低分辨率再进入系统. 2.若是win8开机之后一直黑屏,那么按下述方法进行排除: ①检查显示器与电脑的连接线是否紧密相连; ②拆开机箱,将内存条取出,然后清除灰尘再重新插入接口; ③若是有条件,则更换内存条,显卡,显示器,连接线,以便诊断故障所在

JS仿Windows开机启动Loading进度条的方法

 这篇文章主要介绍了JS仿Windows开机启动Loading进度条的方法,实例分析了javascript操作html元素及对应样式实现特效的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JS仿Windows开机启动Loading进度条的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <html> <title>JS仿Windows开机启动的Loading进度条</title> </head> <body st

JS仿Windows开机启动Loading进度条的方法_javascript技巧

本文实例讲述了JS仿Windows开机启动Loading进度条的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <title>JS仿Windows开机启动的Loading进度条</title> </head> <body style="margin:0;background-color:#5279CE;" scroll=no> <table id=lw style="disp

linux添加开机启动项

使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下: chkconfig --list 可能输出如下: openvpn 0:关闭 1:开启 ...... 6:关闭 (0-6 为启动级别 ; 关闭/开启为相应级别下该服务的自动启动选项) 如果希望对自动启动选项做出改变,命令格式为: chkconfig --level x name on/off z.B. chkconfig --level 5 openvpn off 以上的命令可以查询系统可提供的服务,如

linux添加开机启动项的方法介绍

  使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下: chkconfig --list 可能输出如下: openvpn 0:关闭 1:开启 ...... 6:关闭 (0-6 为启动级别 ; 关闭/开启为相应级别下该服务的自动启动选项) 如果希望对自动启动选项做出改变,命令格式为: chkconfig --level x name on/off z.B. chkconfig --level 5 openvpn off 以上的命令可以查询系统可提供的服务