2010-10-22 10 views
7

He visto el uso del estado de salida 3 en varios python scripts que reinician los procesos. Hasta donde yo sé, la convención es solo acerca de 0 y "no 0" en Unix/Linux.¿Qué significa el estado de salida de proceso 3?

Existe una convención que define otros valores como 3.

+0

@daemon: Si había una convención, todavía no responde a la pregunta "¿qué significa 3 ** ** en este caso"? Una convención no es una ley. Y la secuencia de comandos específica con la que está trabajando podría no cumplir con la convención. –

+3

@ S.Lott - Creo que lo que está preguntando es: "Sé que 0 significa que no hay error, y que no cero significa un error, pero ¿hay alguna convención en el terreno de Python/Linux/Unix que dé un significado especial a 3 ? " –

+0

@sheepsimulator: Lo que estoy diciendo es que incluso si hay una convención, esa información no es útil. Creo que la verdadera pregunta es "¿qué quiere decir 3 en este caso ** **"? –

Respuesta

4

Al menos en los viejos tiempos, un valor de retorno de 1 generalmente significaba un error y generalmente se reservaba el valor 2 para problemas con los argumentos de la línea de comandos, significaba que el usuario había cometido un error, no el programa. Pero más allá de eso: no, no hay convención; e incluso esa ligera convención no era universal. Al igual que los guiones delante de los argumentos de la línea de comandos, que algunas versiones de ps (1) le permiten omitir, los códigos de retorno son solo una convención. En general, lea los documentos (¡o la fuente!) Del script que está ejecutando y luego tendrá que escribir el código de comprobación del código de error según sus significados específicos.

2

No hay una convención para valores distintos de cero, se usan comúnmente para comunicar el motivo de la terminación y depende de cada aplicación definir la asignación del código de error y el motivo. En el caso de que esté enlazando, puede ver claramente unas líneas sobre la comprobación del código de salida 3 que se usa para indicar que el código ha cambiado.

Es decir, en este caso se producirá el comportamiento que indica que el reinicio automático se realiza siempre que el motivo para finalizar sea que el código ha cambiado y nada más.

0

BSD trató de estandarizar los códigos de salida, pero no fue así (todavía no ha?) Capturados en:

sysexits3

Cuestiones relacionadas