背景
網上有很多資料都是講解在Ubuntu系統如果使用Zookeeper自帶的腳本啓動,由於工作中需要將Zookeeper以服務的形式註冊到Ubuntu 18.04系統,故寫此文章記錄整個過程。(在操作的過程中踩了不少的坑)
Ubuntu 18.04註冊服務的方法請參考另外一篇文章,本文也是參考這篇文章註冊Zookeeper服務的。
註冊步驟
1.編寫Zookeeper服務配置文件(zookeeper.service)
進入/etc/systemd/system目錄,創建zookeeper.service,其中的內容如下:
[Unit]
# Zookeeper服務的描述
Description=Zookeeper Service
# 服務依賴—在什麼服務之後啓動,一般爲在網絡服務啓動後啓動
After=network.target
[Service]
# 服務類型—如果是shell腳本的方式,則Type=forking,否則不指定作何值(也就是去掉該配置項)
Type=forking
# 啓動環境參數
# 此腳本指定了Zookeeper日誌和Java的目錄
Environment=ZOO_LOG_DIR=/usr/local/software/zookeeper-3.4.11/logs/
Environment=JAVA_HOME=/usr/local/software/jdk1.8
# 啓動命令
ExecStart=/usr/local/software/zookeeper-3.4.11/bin/zkServer.sh start
# 停止命令
ExecStop=/usr/local/software/zookeeper-3.4.11/bin/zkServer.sh stop
# 重啓命令
ExecReload=/usr/local/software/zookeeper-3.4.11/bin/zkServer.sh restart
[Install]
WantedBy=multi-user.target
如果腳本中沒有指定Zookeeper日誌和Java的目錄,當該腳本啓動的時候會報錯
2.刷新系統配置
在/etc/systemd/system目錄加入新的服務後,需要使用以下命令讓系統重新讀取所有服務的文件。
systemctl daemon-reload
3.開啓並查看
完成以上兩步可以說已經將Zookeeper註冊成爲了系統的服務,但是此時並沒有啓動Zookeeper的服務(需要檢查服務啓動的腳本是否編寫成功,否則不能算是成功的註冊成爲服務),需要通過以下的命令啓動該服務並檢查啓動是否成功。
systemctl start zookeeper.service //啓動服務
systemctl status zookeeper.service //查看服務狀態
4.設置爲開機啓動
當Zookeeper服務能夠正常的使用第3個步驟中的命令啓動時,說明Zookeeper服務已經成功的系統服務。接下來通過命令將該服務設置爲開機自動啓動。
systemctl enabled zookeeper.service
重啓之後即可看到Zookeeper服務已是開機自動啓動的衆多服務中的一個。
至此Ubuntu 18.04 Zookeeper註冊系統服務已經全部完成了!