Process.exit(self, :normal)
wykonuje zadanie, ale drukuje ** (EXIT from #PID<0.49.0>) normal
. Czy istnieje sposób wyjścia bez wiadomości?Jak mogę cicho wyjść z Elixir?
Odpowiedz
To zależy od używanej aplikacji. Jeśli budujesz skrypt, możesz wywołać System.halt(0)
. Jeśli masz aplikację, nie dzwoń pod numer System.halt(0)
, ponieważ spowoduje to zamknięcie całego systemu bez uwzględnienia wszystkich innych aplikacji. Zamiast tego użyj System.stop(0)
.
Alternatywnie można zadzwonić pod numer exit(:shutdown)
, aby zakończyć bieżący proces. :shutdown
jest częstym powodem wyjścia w OTP i jeśli jesteś wewnątrz plików .exs
, będzie działać również dobrze.
Tak. Ale rozwiązanie zależy od kodu uruchomionego procesu (i od miejsca, w którym widzisz komunikat drukowany).
Jeśli proces nie wykorzystuje zachowania OTP i jest po prostu funkcją rekurencyjną, po prostu powrócisz z funkcji. Funkcja rekurencyjna musi mieć przypadek, w którym funkcja nie wywołuje się ponownie. Coś takiego:
def recursive_function(:exit) do
:ok
def recursive_function(other_clause) do
...
Jeśli urządzenie używasz zachowania OTP jak gen_server, wszystko co musisz zrobić, to zatrzymać ten wniosek, że działa pod. Ten będzie wydrukować wiadomości do konsoli IEx (który zakładam jest tam, gdzie widzisz tę wiadomość), ale nie wydrukuje niczego do STDOUT, który zakładam, co cię martwi.
To jest aplikacja OTP. Kod znajduje się tutaj: https://github.com/ijt/speedometer commit 4cc3112e. Widzę to po uruchomieniu 'mix escript.build; ./speedometer -h'. – ijt
Po prostu skomentowałem to zatwierdzenie. Powiedziałem oświadczenie dotyczące sprawy, ale prawdopodobnie można również użyć instrukcji if. Ponieważ istnieją tylko dwie możliwe akcje (nic nie rób AKA exit, lub kontynuuj wykonywanie main). Mam nadzieję, że pomaga! – Stratus3D
Dobrze, dobry pomysł. – ijt
- 1. Jak mogę cicho odmówić spotkania?
- 2. Jak wyjść z beeline?
- 3. Wyjście cicho (bez wyjątku) Haskell
- 4. Jak wyjść z funkcji
- 5. Jak mogę wydrukować PID w Elixir?
- 6. Jak cicho rozpocząć Sinatra + cienki?
- 7. Jak wyjść z adb logcat
- 8. Jak wyjść z użycia oświadczenia
- 9. ActiveRecord STI: Jak mogę wyjść z klasy nadrzędnej default zakres
- 10. Jak mogę wyjść ze skryptu nodeJS z poziomu skryptu?
- 11. Conda - Cicho instalowanie pakietu
- 12. Sencha: Jak wyjść z Ext.each
- 13. Jak wyjść z zagnieżdżonych doseqs
- 14. Jak wyjść z CoffeeScript REPL?
- 15. Złomowanie - Cicho upuszczanie elementu
- 16. Jak uruchomić aplikację Elixir?
- 17. Jak wyjść z widoku dziecka z RecyclerView?
- 18. Jak wyjść z nodemon na windows
- 19. Wykonaj kwerendę sql z Elixir
- 20. Jak bezpiecznie wyjść z lokaja HandlerThreada
- 21. Jak wyjść z pętli foreach w javascript
- 22. Jak wyjść z ekranu bez wpisywania "wyjścia"?
- 23. Jak wyjść z programu w try/except?
- 24. Jak wyjść (uciec) z pętli for wewnątrz?
- 25. Jak wyjść z dwóch zagnieżdżonych pętli
- 26. debugger emacs: jak mogę wyjść, krok po kroku?
- 27. Jak mogę sprawdzić poprawność wyjść i przerw w RSpec?
- 28. Jak wyjść z programu wsadowego po błędzie?
- 29. Jak wyjść z foreach po spełnieniu warunku?
- 30. Jak wyjść z pętli w Bash?
Odpowiedziałem na twoje pytanie najlepiej, jak potrafiłem, ale jest to naprawdę mało precyzyjne. Czy możesz wyjaśnić, jaki proces jest uruchomiony, a także gdzie drukowana jest wiadomość? – Stratus3D