如何在启动时启动plack应用程序

时间:2016-11-05 19:09:59

标签: apache raspbian dancer plack

有没有人知道如何在启动时启动plack应用程序。

os是raspbian(raspberry 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编写。

3 个答案:

答案 0 :(得分: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

手动启动它

您可以使用plackup,而不是startman。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您可能还希望使用ULLONG_MAXmonit来确保您的应用始终运行,并且会因任何原因导致重新启动,例如OOM