2012-10-17 26 views
8

Czuję, że brakuje mi czegoś głupiego oczywistego, ale sprawdziłem wszystko i nie mogę znaleźć odpowiedzi na moje pytanie.Erlang zdejmij powłokę z węzła/Zakończ powłokę bez węzła zabijania

Załóżmy Mam wydanie aplikacji, które I został zbudowany z prętów zbrojeniowych i zacznę go a la

rel/my_app/bin/my_app start 

I niech radośnie go o swojej działalności na chwilę, a potem chcę dołączyć konsoli aby sprawdzić rzeczy, więc robię

rel/my_app/bin/my_app attach 

i otrzymuję powłokę. Zarastam, a kiedy skończę, chcę wyjść z powłoki, ale zostawić aplikację uruchomioną. Jeśli wykonam ^G q lub q()., spowoduje to usunięcie całej aplikacji.

Grałem również przy uruchomieniu aplikacji z +Bi, aby uniemożliwić komuś przypadkowe zamknięcie, ale jak w ogóle można nawet wyjść z załączonej powłoki?

Odpowiedz

11

Nie używam zbrojenia, nigdy nie rozumiałem, jaki problem miał rozwiązać, ale zakładam, że kiedy "dołączasz", robisz to samo, co uruchamianie to_erl. Aby wyjść z tego, wpisz control-D (EOF).

+1

Pomijając komentarz, masz rację :) Teraz, kiedy to wskazujesz, czuję się jak dunce, ponieważ wyraźnie mówi "(^ D, aby wyjść)" lol. – dantswain

+0

Używam erl, aby uruchomić nowy węzeł (w systemie Debian Linux 8, terminal ssh), ale kiedy naciskam Ctrl + D, nic się nie dzieje, dlaczego? – kingluo

-4

Jeśli jest to zwykła zdalna powłoka, dwukrotne naciśnięcie Ctrl-C powinno wykonać sztuczkę.

+1

W imieniu użytkownika anonimowego: to podejście spowoduje zatrzymanie powłoki. Jeśli jesteś podłączony do działającej powłoki aplikacji, możesz nie chcieć wyjść z tej opcji, ponieważ zakończy ona działanie i zatrzyma tę aplikację. –

3

CTRL-D powinien Cię wydostać i pozostawić aplikację uruchomioną.

Powiązane problemy