DevOps之使用systemd管理服务

linxu系统下,如果是自己安装的服务,启动的话最好使用systemd进行系统管理,方便重启、开机自启动、重新加载等等。
centos7和debian9使用systemd进行管理

在/usr/lib/systemd/system里面建立service文件,然后软连接到/etc/systemd/system/目录下面

这里记录下几个常用的服务:

1、zookeeper:

[Unit]
Description=zookeeper
After=network.target

[Service]
WorkingDirectory=/app/zk/zookeeper-3.4.12/bin/
Environment="JAVA_HOME=/usr/local/jdk1.8.0_171" "JAVA_BIN=/usr/local/jdk1.8.0_171/bin" "PATH=/app/zk/zookeeper-3.4.12/bin:/usr/local/jdk1.8.0_171/bin:/usr/local/jdk1.8.0_171/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/bin/bash -ce "exec /app/zk/zookeeper-3.4.12/bin/zkServer.sh start-foreground >> /var/log/zookeeper/zookeeper.log   2>&1 < /dev/null"

[Install]
WantedBy=multi-user.target

注意点:

  • Unit中的启动顺序,在network之后
  • zookeeper是java应用,要配置环境变量
  • 启动要用start-foreground方式,因为system已经是后台守护进程了,不然会启动失败。把日志重定向出来

2、kafka:

[Unit]
Description=kafka
After=zookeeper.service
Wants=zookeeper.service

[Service]
Environment="JAVA_HOME=/usr/local/jdk1.8.0_171" "JAVA_BIN=/usr/local/jdk1.8.0_171/bin" "PATH=/app/kafka/kafka_2.11-1.1.0/bin:/usr/local/jdk1.8.0_171/bin:/usr/local/jdk1.8.0_171/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/app/kafka/kafka_2.11-1.1.0/bin/kafka-server-start.sh /app/kafka/kafka_2.11-1.1.0/config/server.properties

[Install]
WantedBy=multi-user.target

注意点:

  • Unit启动顺序在zk之后,因为kafka要连接到zk
  • kafka也是java写的,要配置java环境变量

你可能感兴趣的:(DevOps之使用systemd管理服务)