有誰知道如何在啓動時啓動plack應用程序。如何在啓動時啓動plack應用程序
os是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如果這有什麼差別。
有誰知道如何在啓動時啓動plack應用程序。如何在啓動時啓動plack應用程序
os是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如果這有什麼差別。
問題在於perl 5環境變量未初始化(位於.bashrc中)。
因此該解決方案是調用plackup
在一個樹莓派我用systemd創建並啓動服務,在文件中之前運行plackup命令裏面bash -i
以便讀取.bashrc
或設置PERL5LIB: /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。
只是爲了清楚:'systemctl enable'和' systemctl start'是不同的和獨立的東西。 '啓用'意味着_「在啓動時自動啓動」_而'開始'意味着_「現在啓動」_。當然,你可以同時做兩件事情:'開始'爲_now_和'啓用'爲_autostart_。我認爲現在也有一個選項可以在一步之內啓用並啓動,但我忘記了它是什麼。 – PerlDuck