==目的==

想把zookeeper、hadoop、hbase、storm等大数据组件

设置为开机启动,并且进程挂掉之后,可以自动重启,以减少运维压力。

==service文件==

路径:/usr/lib/systemd/system

文件名:train-zookeeper.service

样例

[Unit]
Description=Zookeeper Service
After=network.target
ConditionPathExists=/home/qch/zookeeper-3.4.6/conf/zoo.cfg [Service]
Type=forking
Environment=JAVA_HOME=/home/qch/jdk1.8.0_77
ExecStart=/home/qch/exec/zookeeper.service.run
Restart=always [Install]
WantedBy=multi-user.target

zookeeper.service.run内容:

#!/bin/bash
/home/qch/zookeeper-3.4.6/bin/zkServer.sh start

说明:包括[Unit],[Service],[Install]三个部分

[Unit]
Description:描述,
After:在network.target,auditd.service启动后才启动
ConditionPathExists: 执行条件 [Service]
EnvironmentFile=变量所在文件
ExecStart=执行启动脚本
ExecReload=执行重启命令
ExecStop=执行停止命令
Environment=变量
User=服务运行的用户,
Group=服务运行的用户组
PIDFile=存放PID的文件路径
Restart=fail时重启
PrivateTmp=True表示给服务分配独立的临时空间 [Install]
Alias:服务别名
WangtedBy: 多用户模式下需要的

==权限==

添加可执行权限

chmod 754 /usr/lib/systemd/system/train-zookeeper.service

chmod 754 /home/qch/exec/zookeeper.service.run

==命令==

设置开机启动:systemctl enable train-zookeeper.service

取消开机启动:systemctl disable train-zookeeper.service

启动服务:systemctl start train-zookeeper.service

停止服务:systemctl stop train-zookeeper.service

查看服务状态:systemctl status train-zookeeper.service

显示所有已启动的服务:systemctl list-units --type=service

重新加载服务:systemctl daemon-reload

04-30 01:13