2013-02-04 15 views
6

napisałem skrypt startowy dla Ubuntu, aby uruchomić mój serwer node.js ręcznie lub przy starcie. Ale zawsze kończy się stanem 127 i nie mogę znaleźć więcej informacji o tym, co dzieje się nie tak. Jeśli wykonam go ręcznie, to działa i przetestowałem go również na Ubuntu 12.10, gdzie działa również ... nie działa tylko na Ubuntu 10.04, który jest serwerem produkcyjnym, którego używam.działający serwer node.js używający upstart powoduje "zakończony ze statusem 127" na "ubuntu 10.04"

Skrypt:

description "" 
author  "" 

start on started mountall 
stop on shutdown 
respawn 
respawn limit 20 5 

# Max open files are @ 1024 by default. Bit few. 
limit nofile 32768 32768 

env HOME=/home/projects/<project_name>/data/current 

script 
    export HOME=$HOME 
    chdir $HOME 
    exec sudo -u <user_to_launch_the_script> /usr/bin/node /home/projects/<project_name>/data/current/server.js 2>&1 >> /var/log/node.log 
end script 

jakiś pomysł, gdzie można znaleźć więcej informacji na temat stanu 127? Albo jak mogę to naprawić? Sprawdziłem w /var/log/daemon.log i /var/log/syslog.log .. ale nie ma istotnych informacji z wyjątkiem "głównego procesu (29520) zakończonego ze statusem 127".

pozdrowienia rodzaju,

Daan

+0

http://tldp.org/LDP/abs/html/exitcodes. html – StuR

Odpowiedz

9

127 w bash oznacza: "nie znaleziono polecenia" illegal_command, możliwy problem z $ PATH lub literówka.

Źródło: http://tldp.org/LDP/abs/html/exitcodes.html

To może być kwestia winy serwera, jak to jest bash podobne, ale to pytanie/odpowiedź może pomóc:

https://serverfault.com/questions/277706/cron-fails-with-exit-status-127

+0

ok, wydedukowałem polecenie startowe do osobnego skryptu bash, który wykonuję ze skryptu upstart, a potem wydaje się działać ... –

0

Miałem ten problem. Wdrażam aplikację internetową z gunicorn na serwerze Ubuntu 14.04. Przenieś swoje podstawowe instrukcje do skryptu basha. I pamiętaj, aby skrypt był wykonywalny. I zapomniał zrobić plik wykonywalny skrypt bash i tak byłem coraz 127.

description "Gunicorn app running myproject" 

start on runlevel [2345] 
stop on runlevel [!2345] 

respawn 

setuid <user> 
setgid <group> 

exec bash /path/to/bash/script/ 

wtedy mój skrypt bash

#!/bin/bash 
# description "bash script that handles loading env and running gunicorn" 

# load up the project's virtualenv 
source /path/to/virtualenv/bin/activate 

# minimal settings 
exec gunicorn app:app 
Powiązane problemy