【发布时间】:2021-03-24 04:55:16
【问题描述】:
我的 Rails 服务器在部署者用户下运行,我通常这样启动它
#restart.sh
#!/bin/bash
sudo -u deployer -H bash -l
cd /var/www/html/cms/
./server -e staging start
所以当我通过 SSH 登录时,我运行 ./restart.sh 并且效果很好。
我试图在重新启动后自动执行此操作,因此我在其中添加了 reboot_site.service /etc/systemd/system/reboot_site.service
# /etc/systemd/system/reboot_site.service
[Unit]
Description=reboot_site
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/var/www/html/cms
# If you use rbenv:
# ExecStart=/bin/bash -lc '/home/deploy/.rbenv/shims/bundle exec sidekiq -e production'
# If you use the system's ruby:
ExecStart=/home/ec2-user/restart.sh
[Install]
WantedBy=multi-user.target
使用 sudo systemctl enable reboot_site.service 启用该服务
但是,当我现在重新启动服务器时,脚本会在以下行之后停止执行
sudo -u deployer -H bash -l
服务器是一个 AWS EC2 AIM 实例 我的配置有什么问题无法完成这项工作,我该如何解决?
【问题讨论】:
标签: ruby-on-rails amazon-ec2 reboot