如何在启动时启动 plack 应用程序
How do I start plack application on boot
有谁知道如何在启动时启动 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 中编写。
问题是 perl 5 环境变量没有初始化(在 .bashrc 中)。
所以解决方案是 运行 bash -i
中的 plackup 命令,以便它读取 .bashrc
或在调用 plackup
之前设置 PERL5LIB
在 raspberry pi 我使用 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,你当然可以使用plackup。
您可能还想使用 monit
或 supervisord
来确保您的应用始终 运行 并且在任何原因(例如 OOM)终止时重新启动
有谁知道如何在启动时启动 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 中编写。
问题是 perl 5 环境变量没有初始化(在 .bashrc 中)。
所以解决方案是 运行 bash -i
中的 plackup 命令,以便它读取 .bashrc
或在调用 plackup
在 raspberry pi 我使用 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,你当然可以使用plackup。
您可能还想使用 monit
或 supervisord
来确保您的应用始终 运行 并且在任何原因(例如 OOM)终止时重新启动