Raz*_* El 5 rubygems unicorn bundler rvm systemd
我已经写了一个systemd文件来systemctl启动unicorn:
[Unit]\nDescription=Unicorn server\n\n[Service]\nSyslogIdentifier=my-app-unicorn\nUser=deployer\nPIDFile=/tmp/unicorn.my-app.pid\nWorkingDirectory=/opt/www/my-app.com\n\nExecStart=/home/deployer/.rvm/gems/ruby-2.2.1@my-app/bin/bundle exec "unicorn_rails -D -c /opt/www/my-app.com/config/unicorn.rb -E production"\n#ExecReload=/bin/kill -s HUP $MAINPID\nExecReload=/bin/kill -s USR2 $MAINPID\nExecStop=/bin/kill -s QUIT $MAINPID\n\n[Install]\nWantedBy=multi-user.target\nRun Code Online (Sandbox Code Playgroud)\n\n这是我用来启动服务的命令
\n\n$ sudo systemctl daemon-reload\n$ sudo systemctl start my-app.service\nRun Code Online (Sandbox Code Playgroud)\n\n我在这里检查状态:
\n\n$ sudo systemctl status my-app\n\xe2\x97\x8f my-app.service - My app unicorn server\n Loaded: loaded (/lib/systemd/system/my-app.service; disabled; vendor preset: enabled)\n Active: failed (Result: exit-code) since Tue 2016-03-15 14:56:31 UTC; 4s ago\n Process: 22165 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=200/CHDIR)\n Process: 22162 ExecStart=/home/deployer/.rvm/gems/ruby-2.2.1@my-app/bin/bundle exec unicorn_rails -D -c /opt/www/my-app.com/config/unicorn.rb -E production (code=exited, status=200/CHDIR)\n Main PID: 22162 (code=exited, status=200/CHDIR)\n\nMar 15 14:56:31 fat-man systemd[1]: Started My-App unicorn server.\nMar 15 14:56:31 fat-man systemd[22162]: my-app.service: Failed at step CHDIR spawning /home/deployer/.rvm/gems/ruby-2.2.1@my-app/bin/bundle: No such file or directory\nMar 15 14:56:31 fat-man systemd[1]: my-app.service: Main process exited, code=exited, status=200/CHDIR\nMar 15 14:56:31 fat-man systemd[1]: my-app.service: Control process exited, code=exited status=200\nMar 15 14:56:31 fat-man systemd[1]: my-app.service: Unit entered failed state.\nMar 15 14:56:31 fat-man systemd[1]: my-app.service: Failed with result \'exit-code\'.\nRun Code Online (Sandbox Code Playgroud)\n\n可能是什么问题呢?
\n小智 4
错误消息Failed at step CHDIR意味着systemd无法cd进入 中指定的目录WorkingDirectory。它被指定为,/opt/www/my-app.com但稍后您将其列为/opt/www/my-app。
另一个问题是,您从告诉进程守护进程的unicorn_rails选项开始(启动进程分叉子进程并立即退出),但您的部分没有指定,因此它默认为并期望进程保持活动状态。您需要删除选项或指定.-Dunicorn_rails[Service]Typesimplesystemd-DType=forking
请参阅unicorn 的示例单元文件
| 归档时间: |
|
| 查看次数: |
3893 次 |
| 最近记录: |