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

时间: 2024-10-07 04:00:41

CentOS6和CentOS7服务开机启动的相关文章

centOS7添加开机启动服务/执行脚本

centOS7添加开机启动服务/执行脚本 /etc/rc.d/rc.local  后追加shell脚本 1 开机启动服务 在centos7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): #设置jenkins服务为自启动服务 systemctl enable jenkins.service #启动jenkins服务 systemctl start jenkins.service 2 开机执行脚本 在centos7中增加脚本有两种常用的方法: 修改/etc/rc.d/rc/lo

centos7 查看开机启动项和程序服务

systemctl list-unit-files  (查看开机启动项) systemctl list-unit-files  |  grep 程序名称   (查看某些服务开机启动状态) systemctl  list-unit-files |  grep enable (查看哪些为开机启动服务) 原文地址:https://www.cnblogs.com/MUQINGFENG123/p/11532751.html

centos设置服务开机启动

Linux CentOS设置服务开机启动的方法 by 天涯 · 2013/07/26 CentOS设置服务开机启动的两种方法 1.利用 chkconfig 来配置启动级别 在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd.mysqld.postfix等,安装后系统默认不会自动启动的.就算 手动执行 /etc/init.d/mysqld start 启动了服务,只要服务器重启后,系统仍然不会自动启动服务. 在这个时候,我们就需要在安装后做个设置,让系统自动启动这些服务,

CentOS设置服务开机启动的方法

CentOS设置服务开机启动的两种方法 1.利用 chkconfig 来配置启动级别 在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd.mysqld.postfix等,安装后系统默认不会自动启动的.就算手动执行 /etc/init.d/mysqld start 启动了服务,只要服务器重启后,系统仍然不会自动启动服务. 在这个时候,我们就需要在安装后做个设置,让系统自动启动这些服务,避免不必要的损失和麻烦. 其实命令很简单的,使用chkconfig即可. [天涯PHP博

(转)CentOS 7 sytemctl 自定义服务开机启动

CentOS 7 sytemctl 自定义服务开机启动 原文:http://blog.csdn.net/ithomer/article/details/51766319 CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得系统服务的/etc/init.d的启动脚本的方式发生重大改变,也大幅提高了系统服务的运行效率.但服务的配置和以往也发生了极大的不同,变的简单而易用了许多(仁者见仁,米扑博客). systemd提供更优秀的框架以表示系统服务

成绩查询系统--发布篇--centOS7 tomcat开机启动 + mysql数据库配置

前情介绍 成绩查询系统投入使用,部署在一台linux服务器上,是centOS7系统的.之前在本机的虚拟机中装过centOS7,还写了一篇博客.这次呢,系统是已经装好了的,我不需要再装一次了,然后jdk环境之前就弄好了,mysql也已经装好了(但是实际上从未投入过使用),还有jboss服务器也装好了,不过我的项目用的是tomcat,所以我只要装一个tomcat就好了. Tomcat安装 首先,从tomcat官网上下载,tomcat的linux版本,我下载的是tomcat7,版本是:apache-t

【转】centos 服务开机启动

转自: http://blog.csdn.net/educast/article/details/49558945 http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html 1.利用 chkconfig 来配置启动级别在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd.mysqld.postfix等,安装后系统默认不会自动启动的.就算手动执行 /etc/init.d/mysqld start

linux服务开机启动

1.chkconfig 配置开机启动 在  /etc/init.d  创建执行服务的可执行脚本,赋予脚本可执行权限.如果是通过yum 或者rpm安装的,并且已经在该目录下存在对应的启动脚本,就不用自己创建了. 需要开机通过chkconfig设置开机启动的服务,必须在 /etc/init.d 目录创建一个可执行脚本,服务名称就是脚本名称.每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释. # chkconfig:  chkconfig缺省启动的运行级以及启

redis服务开机启动过异常,造成haresources里面的服务挂载失败(非法关机造成的)

1.刚开始ha日志报umail_postgresql启动不了,发现/etc/init.d/目录下这个服务文件都没有,成为临时文件了.于是以为在/etc/ha.d/haresources文件中去掉这个服务就可以.备注:/etc/ha.d/haresources原本中有kkmail_nginx kkmail_mysqld kkmail_app kkmail_postgresql服务. 2.去掉后并重启了服务器,发现依然不行.ha日志继续提示app服务启动错误. [[email protected]