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