這幾天才發現,這個很常使用的功能,我竟然沒有寫成文章,難怪最近找起來想說為什麼找不到 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
# 如果想讓崩潰的服務自動重啟
Restart=on-failure
RestartSec=5s
# 如果需要指定工作目錄
WorkingDirectory=/your/path/here
[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 #開機不執行此服務(預設)