Linux

如何強制服務從 Ubuntu Linux 中的指定目錄執行?

  • August 26, 2022

我需要創建一個服務來自動啟動我的 Rails 伺服器。由於該rails server命令僅在應用程序目錄中正常工作,因此我使用/lib/systemd/system/dev.fhc.name.service具有以下內容的文件:

[Unit]
Description=Puma development server for fhc.name domain

[Service]
ExecStart=cd /home/fhc/www && screen -dmS dev.fhc.name rails server -u puma -e development -p 3001
ExecStop=screen -X -S dev.fhc.name quit
Type=idle
KillMode=process

SyslogIdentifier=dev-fhc-name
SyslogFacility=daemon

Restart=on-failure

[Install]
WantedBy=multi-user.target

但是,嘗試執行它:

sudo systemctl start dev.fhc.name

導致錯誤:

8 月 25 日 23:00:51 fhc.name systemd

$$ 1 $$:/lib/systemd/system/dev.fhc.name.service:5:在路徑“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin”中找不到執行檔“cd” :/sbin:/bin"

我究竟做錯了什麼?

根據這個答案,您應該使用指令WorkingDirectory。不要忘記其他指令,例如ExecStart應該有完整路徑。

對我來說,screenlook 的用法有點奇怪而且不到位。

引用自:https://serverfault.com/questions/1109161