Zmiany conf na początku nie są ponownie ładowane po edycji

10

Po wprowadzeniu pewnych zmian w pliku conf na starcie, upstart nie ładuje ponownie nowych zmian, dopóki nie zrestartuję systemu

start on filesystem or runlevel [23]
stop on runlevel [6] 

respawn 
expect fork 

script 
    echo "Starting gunicorn.." > /tmp/upstart_t 
    exec /srv/sms/mwav_messenger/gunicorn_start.sh 
end script 

console output

Gdybym miał zmienić ten skrypt, nadal zachowałbym oryginalne zachowanie. Co więcej, jeśli zatrzymam lub uruchomię skrypt ręcznie, linia poleceń po prostu się zawiesi i muszę wcisnąć Control-C, aby wrócić do linii poleceń.

Twoje zdrowie.

sdk900
źródło

Odpowiedzi:

15

Zmiany w skryptach Upstart obowiązują po zatrzymaniu wszystkich uruchomionych instancji tego zadania. W ten sposób modyfikacja pliku conf i wykonanie sudo restart jobspowoduje uruchomienie go ze starymi wartościami. Musisz sudo stop jobwtedy sudo start jobmieć nowy plik conf.

Premia: sudo stop jobutknięcie w takim skrypcie oznacza, że ​​masz expectzdefiniowaną niewłaściwą zwrotkę. Aby uzyskać więcej informacji, zobacz sekcję Książka kucharska w oczekiwaniu . tl; dr, prawdopodobnie jest dodatkowy i można go usunąć.

Tuminoid
źródło
6
To okropne! Dlaczego restart nie jest == stop / start? Przeładowanie zwykle służy do szybkiego ponownego uruchomienia.
Aaron McMillin