我需要创建一个服务来自动启动我的 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:/sbin:/bin”中未找到可执行文件“cd”
我究竟做错了什么?
答案1
基于此回答您应该使用指令WorkingDirectory
。不要忘记其他指令,例如ExecStart
应该有完整路径。
对我来说,使用起来screen
有点奇怪且不合适。