CentOS6和CentOS7服务开机启动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS6和CentOS7服务开机启动相关的知识,希望对你有一定的参考价值。

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定义了启动和停止的实现方式。

配置好后,运行:

[[email protected] system]#systemctl enable myuptime

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

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

执行:

[[email protected] system]#systemctl start myuptime

查看:

[[email protected] 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作为服务加入启动项。

以上是关于CentOS6和CentOS7服务开机启动的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7添加开机启动服务/脚本(延用CentOS6方法)

装了windows和centos6如何设置开机启动windows

Centos7下添加开机自启动服务和脚本

centos怎么设置开机自启动ssh服务

centos7.x开机启动流程centos6.x开机启动流程

centos7.x开机启动流程centos6.x开机启动流程