Process.exit(self, :normal)
erledigt den Job, aber es druckt ** (EXIT from #PID<0.49.0>) normal
aus. Gibt es eine Möglichkeit, ohne die Nachricht zu beenden?Wie kann ich leise von Elixir ausgehen?
Antwort
Es hängt davon ab, welche Anwendung Sie ausführen. Wenn Sie ein Skript erstellen, können Sie System.halt(0)
aufrufen. Wenn Sie eine Anwendung haben, rufen Sie nicht System.halt(0)
, da es das gesamte System ohne Berücksichtigung aller anderen Anwendungen herunterfahren wird. Verwenden Sie stattdessen System.stop(0)
.
Alternativ können Sie exit(:shutdown)
aufrufen, um den aktuellen Prozess zu beenden. :shutdown
ist ein häufiger Grund für den Ausgang in OTP und wenn Sie in .exs
Dateien sind, wird es auch gut funktionieren.
Ja. Die Lösung hängt jedoch von dem Code ab, den Ihr Prozess ausführt (und wo die Nachricht gedruckt wird).
Wenn der Prozess kein OTP-Verhalten verwendet und einfach eine rekursive Funktion ist, können Sie einfach von der Funktion zurückkehren. Ihre rekursive Funktion muss nur einen Fall enthalten, in dem die Funktion nicht erneut aufgerufen wird. Etwas wie folgt aus:
def recursive_function(:exit) do
:ok
def recursive_function(other_clause) do
...
Wenn Ihr ein OTP Verhalten wie gen_server verwenden, alles, was Sie tun müssen, ist, dass die Anwendung zu stoppen, die es unter ausgeführt wird. Diese wird drucken Nachrichten an die IEX-Konsole (die ich vermute, ist, wo Sie diese Nachricht sehen), aber es wird nichts auf STDOUT, die ich vermute, ist, was Sie besorgt sind.
Dies ist eine OTP-App. Der Code ist hier: https://github.com/ijt/speedometer Commit 4cc3112e. Ich sehe das, wenn ich 'mix escript.build; ./Geschwindigkeitsmesser -h'. – ijt
Nur kommentiert, dass commit. Ich habe eine Case-Anweisung gesagt, aber Sie könnten wahrscheinlich auch eine if-Anweisung verwenden. Da es nur zwei mögliche Aktionen gibt (nichts AKA beenden, oder main weiter ausführen). Ich hoffe, das hilft! – Stratus3D
Richtig, gute Idee. – ijt
- 1. Wie mache ich wget richtig leise?
- 2. Wie kann ich eine Sequenz von Zahlen in Elixir erzeugen?
- 3. Wie installiere ich Elixir richtig?
- 4. eine Funktion Rückkehr leise
- 5. Lauf MSI-Installer leise
- 6. Jest ignoriert leise Fehler
- 7. php cURL leise Option?
- 8. Run pdflatex leise
- 9. Abfangen Funktionsaufrufe ausgehen von einer Funktion Python
- 10. Wie kann ich eine PID in Elixir drucken?
- 11. Wie kann ich die Standard-Elixir Mix Aufgabe
- 12. Wie kann ich einen Zeilenumbruch (Zeilenfortsetzung) in Elixir machen?
- 13. Wie kann ich die Konfigurationsvariable in Phoenix/Elixir lesen?
- 14. Wie erhöhe ich eine Zahl in Elixir?
- 15. Kann ich davon ausgehen, dass die Werte von GetHashCode() konsistent sind?
- 16. PasswordBox nicht davon ausgehen, Stil
- 17. Wie erkenne ich Probleme mit der Datenbankverbindung von Elixir Ecto?
- 18. Ausfahrt leise (ohne Ausnahme) Haskell
- 19. Wie reduziere ich mit Index in Elixir?
- 20. CATextLayer Textschrift auf der Erhöhung Textgröße Ausgehen
- 21. HTML-Elemente, die beim Heranzoomen ein/ausgehen
- 22. Python, unittest: Kann man den TestRunner komplett leise machen?
- 23. Wie Streifen Kommas von String in Elixir?
- 24. Analog von || = operator in elixir
- 25. Mixed Erlang/Elixir Projekte - kann ich Mix oder Rebar verwenden?
- 26. Wenn 'Process.HasExited' eine Ausnahme auslöst, kann ich davon ausgehen, dass der Prozess weg ist?
- 27. Wie kann ich JSON mithilfe von RabbitMQ und Elixir an Kunden senden?
- 28. Wie kann ich ein Erlang-Modul eines Drittanbieters von Elixir anrufen?
- 29. Wie kann ich ein Elixir-Projekt neu kompilieren und von iex laden?
- 30. {leise: wahr} in Backbone 1.0 Version
Ich beantwortete Ihre Frage so gut ich konnte, aber es ist sehr vage. Können Sie erklären, wo Ihr Prozess läuft und wo Sie die Nachricht gedruckt sehen? – Stratus3D