通常我们所说的服务,就是一个后台守护程序。下面说一下服务常用操作。

服务基础管理命令

systemctl

/lib/systemd/system下的服务

  1. # 开机启动
  2. systemctl enable mysqld
  3. systemctl disable mysqld
  4. systemctl is-active sshd.service
  5. # 启动服务
  6. systemctl start mysqld
  7. systemctl stop mysqld
  8. systemctl restart mysqld
  9. systemctl status mysqld
  10. systemctl kill mysqld # 结束服务进程(服务无法停止时)
  11. # 服务列表
  12. systemctl list-unit-files --type=service

init.d

对于 /etc/init.d 下的启动脚本

  1. chkconfig --list
  2. chkconfig --add test
  3. chkconfig --delete test
  4. chkconfig --level 5 httpd on # 开启启动
  5. chkconfig --level 5 httpd off # 开机关闭

例如:关闭阿里云盾

  1. service aegis stop #停止服务
  2. chkconfig --del aegis # 删除服务

自定义服务

systemd

以activeMq为例

1、新建服务文件

  1. vim /usr/lib/systemd/system/activeMq.service

2、编辑启动、关闭、重启的命令,其中的命令可以是sh文件

  1. [Unit]
  2. Description=activemq
  3. After=network.target remote-fs.target nss-lookup.target
  4. [Service]
  5. ExecStart=/home/zhpt/software/apache-activemq-5.15.2/bin/activemq start
  6. ExecReload=/home/zhpt/software/apache-activemq-5.15.2/bin/activemq restart
  7. ExecStop=/home/zhpt/software/apache-activemq-5.15.2/bin/activemq stop
  8. [Install]
  9. WantedBy=multi-user.target

init.d

创建日志目录

  1. sudo mkdir -p /data/log

启动脚本

  1. cd /etc/rc.d/init.d && touch autostart && chmod +x autostart

脚本内容

/etc/rc.d/init.d/autostart

  1. #!/bin/bash
  2. # chkconfig: 2345 08 92
  3. # description: Description
  4. exec 2> /data/log/autostart.log # send stderr from rc.local to a log file
  5. exec 1>&2 # send stdout to the same log file
  6. echo "atuostart started" # show start of execution
  7. set -x # open log

开机启动

  1. chkconfig --add autostart
  2. chkconfig autostart on