Pregunta Comportamiento inesperado de Killall


Desde mi entendimiento de killall name es que busca todos los procesos cuyo nombre es nombre. Asi que killall killall debería buscar y matarse, así que no esperaba ninguna salida. Entonces tengo curiosidad
¿Por qué se ve así?

nathan:~ max$ killall killall
No matching processes belonging to you were found
nathan:~ max$ 

Estoy en el OS X actual.


1


origen




Respuestas:


Por la página man de Linux killall no se matará a sí mismo.

Editar: veo que esto no se menciona en la página man de OSX, pero probablemente tenga el mismo comportamiento. La razón es que puedes usar expresiones regulares así que es completamente posible que accidentalmente intentes matar killall al especificar una expresión regular, y eso haría killall Menos útil.

Edición 2: podría estar muy equivocado acerca de esto, pero no es OSX llamado "Darwin" - y no es esta el código fuente de OSX killall ¿entonces?

Estoy un poco oxidado en mi C, pero el siguiente:

  if (thispid == mypid)
        continue;

en lo que parece ser un ciclo que itera a través de todos los procesos activos parece ser una comprobación específica para comparar el proceso actual que está tratando de matar contra su propio PID, por lo que se saltará a sí mismo.

Supongo que podría descargar esa fuente, eliminar esas dos líneas y volver a compilarla si realmente quisiera un killall eso se mataría a sí mismo.


5



¿Puedes decirme en qué página de hombre lo encontraste? - Max Ried
los Página de manual OSX no menciona esto, pero el de Linux hace. Podría tener que verificar el código fuente, pero apostaría a que actuarían de la misma manera. - LawrenceC