有没有人知道如何在启动时启动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编写。
答案 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_MAX
或monit
来确保您的应用始终运行,并且会因任何原因导致重新启动,例如OOM