2010-10-22 13 views
7

Widziałem użycie statusu wyjścia 3 w kilku python scripts, które restartują procesy. O ile mi wiadomo konwencja jest tylko o 0 i "nie 0" na Unix/Linux.Co oznacza status wyjścia procesu 3?

Czy istnieje konwencja określająca inne wartości, takie jak 3.

+0

@daemon: Jeśli nie było konwencję, to nadal nie jest odpowiedź na pytanie „co to znaczy 3 ** w tym przypadku **”? Konwencja nie jest prawem. A skrypt, nad którym pracujesz, może nie być zgodny z konwencją. –

+3

@ S.Lott - Myślę, że pyta: "Wiem, że 0 oznacza brak błędu, a niezerowy oznacza błąd, ale czy istnieje pewna konwencja w Python/Linux/Unix, która nadaje specjalne znaczenie 3 ? " –

+0

@sheepsimulator: To, co mówię, to to, że nawet jeśli istnieje konwencja, informacje te są niepomocne. Myślę, że prawdziwe pytanie brzmi "co znaczy 3 ** w tym przypadku **"? –

Odpowiedz

4

Przynajmniej w dawnych czasach wartość zwracana 1 ogólnie oznaczała błąd twardy, a wartość 2 była zwykle zarezerwowana dla problemów z argumentami wiersza poleceń - oznaczało to, że użytkownik popełnił błąd, a nie program. Ale poza tym: nie, nie ma konwencji; a nawet ta niewielka konwencja nie była powszechna. Tak jak w przypadku kresek przed argumentami wiersza poleceń, które niektóre wersje ps (1) pozwalają pominąć, kody powrotów były po prostu konwencją. Ogólnie rzecz biorąc, przeczytaj dokumenty (lub źródło!) Do skryptu, którego używasz, a następnie musisz napisać kod sprawdzający kod błędu do jego konkretnych znaczeń.

2

Nie ma konwencji dla wartości niezerowych, są one zwykle używane do podawania przyczyny zakończenia i do każdej aplikacji należy określenie odwzorowania kodu błędu i przyczyny. W przypadku, gdy łączysz się z Tobą, możesz wyraźnie zobaczyć kilka linii nad kodem wyjścia 3, które są używane do wskazania, że ​​kod się zmienił.

Tzn. W tym przypadku spowoduje to zachowanie, że automatyczne ponowne uruchomienie jest tak długo, jak powodem do zakończenia był to, że kod się zmienił i nic więcej.

0

BSD próbował ujednolicić kody wyjścia, ale nie (jeszcze nie?) Złowionych na:

sysexits3