Linux
如何強制服務從 Ubuntu Linux 中的指定目錄執行?
我需要創建一個服務來自動啟動我的 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
應該有完整路徑。對我來說,
screen
look 的用法有點奇怪而且不到位。