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?

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.


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.