在linux下將特定程式包成服務

這幾天才發現,這個很常使用的功能,我竟然沒有寫成文章,難怪最近找起來想說為什麼找不到XD

故事前提:之前寫的nodejs想要在linux上跑,但是SSH關了,nodejs也斷了,並沒有乖乖的在背景運作,於是乎後來找了些方法,我覺得這個最適合我ㄌ。

這邊是使用Ubuntu啦,我不確定不同型態的linux有沒有差別,應該大同小異啦。
首先先輸入以下內容,myservice是你想建立的服務名稱,可以更改。

sudo vim /lib/systemd/system/myservice.service

進到vim模式,貼上以下內容,並更改成你的形狀(X
Description的內容是簡介,你可以改成任意你喜歡的,方便辨認就好
ExecStart是執行的目錄+檔案位置
如果是nodejs 前段是/usr/bin/node
如果是python 前段是/usr/bin/python3(我的印象,沒很常用PY)
後段就是你的檔案位置囉!

[Unit]
Description=Telegram bot
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/node /var/tgbot/tgbot.js

[Install]
WantedBy=multi-user.target

存檔後退出,輸入以下指令讓服務生效。

sudo systemctl daemon-reload

好啦,接下來你可以用以下指令,來控制你建立的服務囉!
各個指令的意義我會註解在後面。

sudo systemctl start myservice.service  //啟動服務
sudo systemctl restart myservice.service  //重新啟動服務
sudo systemctl stop myservice.service  //停止服務
sudo systemctl enable myservice.service  //開機自動執行此服務
sudo systemctl disable myservice.service  //開機不執行此服務(預設)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *