Czy mogę ssh w elasticbeanstalk i ręcznie uruchomić ponownie aplikację (węzeł)?

6

chcę eb ssh w, zatrzymaj aplikację węzła (nie całą instancję), zmień debugowanie i npm start.

Kiedy ja eb ssh mogę sprawdzić moje pliki i edytować je. Ale nie mogę użyć npm poleceń i nie mogę odkryć procesu węzła za pomocą mojego bash-fu. W aws cli docs tylko widzę eb stop i eb start które restartują cały serwer (tracąc moje zmiany, które uważam za bezpieczne).

Czy to po prostu niemożliwe?

Ashley Coolman
źródło

Odpowiedzi:

6

Aby zmodyfikować działający kod, edytuj pliki w:

/var/app/current

Następnie działa:

sudo pkill -f node

spowoduje ponowne uruchomienie aplikacji węzła z uruchomionym najnowszym kodem.

jaynp
źródło
Nie ma procesu dla węzła, gdy aplikacja początkowo ulega awarii. W jaki sposób można go uruchomić, jeśli nie ma bieżącego procesu pkill?
Jeremy
2

Widzieć moja odpowiedź do podobnego pytania w SO

Istotą jest, dla specyficznej aplikacji nodejs, spróbuj

# to start the process
python /opt/elasticbeanstalk/containerfiles/ebnode.py --action start-all
# to stop the process
sudo python /opt/elasticbeanstalk/containerfiles/ebnode.py --action stop-all
Jeremy
źródło
2

Elastic Beanstalk wykorzystuje upstart do zarządzania procesami.

Możesz użyć initctl, aby ponownie uruchomić procesy.

Na przykład

initctl restart nodejs

Oczywiście możesz go zacząć start zamiast restartu, jeśli z jakiegoś powodu nie działa.

Podobnie możesz zastosować to samo do każdego procesu zarządzanego przez upstart. Możesz znaleźć nazwy tych procesów za pomocą

initctl list
Ben Swinburne
źródło