==目的==
想把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