2

有谁知道如何在启动时启动一个 plack 应用程序。

操作系统是 raspbian(覆盆子 pi)。我想我已经以普通用户(pi)的身份运行它。这就是我手动启动它的方式。

我试过添加这样的东西rc.local但没有成功

su pi -c 'cd /path/to/app && plackup -d -p 5000 -r -R ./lib,./t -a ./bin/app.psgi &'

这将反过来被 Apache 使用,如果有任何区别,应用程序是用 dancer2 编写的。

4

3 回答 3

1

在树莓派上,我使用 systemd 在文件中创建和启动服务: /etc/systemd/system/dancer.service

[Unit]
Description=NCI Starman Dancer App
After=syslog.target

[Service]
Type=forking
ExecStart=/usr/local/bin/starman --daemonize -l 127.0.0.1:3004 \
  --user myuser --group myuser --workers 8 -D -E production \
  --pid /var/run/dancer.pid -I/home/myuser/webservers/Dancer/lib \
  --error-log=/home/myuser/logs/dancer_error.log \
  /home/myuser/webservers/Dancer/bin/app.psgi
Restart=always

[Install]
WantedBy=multi-user.target

然后我启用它systemctl enable dancer.service 或手动启动它systemtctl start dancer.service

代替 startman,你当然可以使用 plakup。

于 2016-12-09T18:12:48.903 回答
0

问题是 perl 5 环境变量未初始化(在 .bashrc 中)。

所以解决方案是在内部运行 plackup 命令,bash -i以便在调用 plackup 之前读取.bashrc或设置 PERL5LIB

于 2016-11-22T08:02:36.110 回答
-1

您可能还想使用monitsupervisord确保您的应用程序始终运行,并且将在因任何原因终止时重新启动,例如 OOM

于 2017-05-22T22:48:50.763 回答