Ubuntu18.04添加服務並設置開機啓動

問題提出場景:裝了一個mycat,想直接設置開機啓動

網上一大堆教程,不是你抄我就是我抄你,很多Ubuntu的新特性沒搞明白就亂髮文章了,沒辦法只能自己總結經驗了;

我這裏採用systemctl添加服務的方法

一、Ubuntu18.04的改動

ubuntu-16.10 開始不再使用initd管理系統,改用systemd。用 systemctl 命令來替換了 service 和 chkconfig 的功能。

比如以前啓動 mysql 服務用:

sudo service mysql start

現在用:

sudo systemctl start mysqld.service

所以我採用了增加systemd服務的方法;

二、systemctl配置

systemctl service服務文件夾在/lib/systemd/system(基本服務文件夾)與/etc/systemd/system(開機啓動文件夾)。先添加基本服務,所以在/lib/systemd/system下創建mycat.service,內容如下:

[Unit]
Description=mycat service

[Service]
Type=forking

ExecStart=/usr/local/mycat/bin/mycat start
ExecReload=/usr/local/mycat/bin/mycat restart
ExecStop=/usr/local/mycat/bin/mycat stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
Alias=mycat.service

[Unit] 段: 啓動順序與依賴關係,如After=network.target,就說明在network.target服務啓動之後。

[Service] 段: 啓動行爲,如何啓動,啓動類型,看上面的配置就知道意義了;

[Install] 段: 定義如何安裝這個配置文件,即怎樣做到開機啓動

弄好了上面的配置之後運行如下命令讓服務生效,有的時候需要重啓電腦才能生效,這是很多教程沒提到的情況!

 sudo systemctl daemon-reload

重載後運行sudo systemctl start mycat.service

如果想加到開機啓動,就運行

sudo systemctl enable mycat.service

這個時候系統會自動加載mycat.service到/etc/systemd/system文件夾下,很多教程直接自己鏈接過去,不推薦那麼幹,因爲有的自己鏈接會出現未知的錯誤,很難找到原因,容易翻車。

三、運行mycat可能出現的原因

運行sudo systemctl start mycat.service會只出現一個wrapper,而且查看wrapper.log會報錯:

這是因爲你的wrapper沒有配置Java路徑,在conf/wrapper.conf裏設置

wrapper.java.command=/usr/local/jdk1.8.0_211/bin/java

就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章