2016-11-05 12 views
0

부트시 plack 응용 프로그램을 시작하는 방법을 아는 사람이 있습니까?부팅시 plack 응용 프로그램을 시작하는 방법

os는 raspbian (나무 딸기 파이)입니다. 일반 사용자 (pi)로 실행했다고 생각합니다. 그것이 수동으로 시작하는 방법입니다.

나는 성공

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

의 회전이 뜻이 아파치에 의해 사용과 어떤 차이가있는 경우 응용 프로그램이 dancer2로 작성 rc.local에 있지만없이 이런 식으로 뭔가를 추가하는 시도했습니다.

답변

0

문제점은 perl 5 환경 변수가 초기화되지 않았습니다 (.bashrc에 있음).

그래서 솔루션은 파일에, 나는 서비스를 생성하고 시작 systemd 사용 라즈베리 파이에 plackup

0

를 호출하기 전에 PERL5LIB을가 .bashrc을 읽고 그래서 bash -i 내부의 plackup 명령을 실행하거나 설정했다 : /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을 사용할 수 있습니다.

+0

예를 들어 OOM를 들어, 어떤 이유에 의해 살인의 경우에 다시 시작됩니다 :'systemctl의 enable' 및' systemctl start'는 서로 다른 독립적 인 것들입니다. 'enable'은 _ "부팅시 자동 시작"_을 의미합니다. 반면에'start'는 _ "start now"_를 의미합니다. 물론 _now_에 대한'start'와 _autostart_에 대한'enable' 둘 다 할 수 있습니다. 한 단계에서 _enable 및 now_을 (를) 선택하는 옵션도 있다고 생각하지만 그 사실을 잊어 버렸습니다. – PerlDuck

0

당신은 또한 당신의 앱이 항상 실행되어 있는지 확인하는 monit 또는 supervisord을 사용할 수 있으며, 단지 명확하게하는

+0

예제를 추가 할 수 있습니까? – tejas