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

CentOS6和CentOS7服务开机启动

2016-02-26 21:42 585 查看
CentOS 6和CentOS 7都可以定义开机启动哪些服务,但CentOS 6的命令是chkconfig,CentOS 7是systemctl。

本文将介绍两种命令的实现方式。

一、CentOS 6的服务

在CentOS 6下编写一个服务http,位于/etc/init.d目录下,具体的脚本如下:

#!/bin/bash
# chkconfig: 2345 10 90
# description: http ....

start() {
echo "HTTP is enabled now"
}
stop() {
echo "HTTP is disable now"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
start
stop
;;
*)
echo "USAGE $0 {start|stop|restart}"
exit
esac


注意,两个注释"# chkconfig: 2345 10 90"和 "# description: http ...."表示:启动的level和优先级,已经服务的描述。这两段注释是一定要加上的。否则服务添加是报错。

通过如下命令实现把服务注册到chkconfig中:

chkconfig --add http


然后可以通过:

chkconfig http on


定义开机启动这个服务。另外可以查看chkconfig的状态:

chkconfig --list


二、CentOS 7的服务

在CentOS 7的机器中创建一个服务的脚本: /etc/init.d/myuptime。具体的脚本如下:

#!/bin/bash

start() {
echo starting
while true
do
uptime >> /root/myuptime.txt
sleep 2
done
}
stop() {
echo stoping
pid=`ps -ef | grep myuptime | grep -v grep | awk '{print $2}'`
kill $pid &
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "USAGE $0 {start|stop|restart}"
exit
esac


在/etc/systemd/system中创建服务描述文件myuptime.service

[Unit]
Description=uptime Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/etc/init.d/myuptime start
ExecStop=/etc/init.d/myuptime stop

[Install]
WantedBy=multi-user.target


这个文件中包含Unit、Service和Install三个部分。定义了描述、服务属性的类型和安装参数等。其中ExecStart、ExecStop定义了启动和停止的实现方式。

配置好后,运行:

[root@hwcentos70-01 system]#systemctl enable myuptime

ln -s '/etc/systemd/system/myuptime.service' '/etc/systemd/system/multi-user.target.wants/myuptime.service'


systemctl把myuptime服务加入到了启动项目中。

执行:

[root@hwcentos70-01 system]#systemctl start myuptime


查看:

[root@hwcentos70-01 system]#systemctl status myuptime

myuptime.service - uptime Service

Loaded: loaded (/etc/systemd/system/myuptime.service; enabled)

Active: active (running) since Fri 2016-02-26 13:37:23 UTC; 10s ago

Main PID: 53620 (myuptime)

CGroup: /system.slice/myuptime.service

├─53620 /bin/bash /etc/init.d/myuptime start

└─53632 sleep 2

Feb 26 13:37:23 hwcentos70-01 systemd[1]: Started uptime Service.

Feb 26 13:37:23 hwcentos70-01 myuptime[53620]: starting


通过以上的方法实现把myuptime作为服务加入启动项。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: