DevOps之使用systemd管理服务
2018-05-10 本文已影响319人
OrangeLoveMilan
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环境变量