No se puede finalizar un trabajo sin abrirlo
Pregunta
Ejecuto el siguiente código sin éxito
sudo killall %4
donde% 4 es mi sesión de Vim.
¿Cómo puede terminar un trabajo sin ponerlo en primer plano?
Solución
Creo que quieres " matar " en lugar de " killall " ;. He probado bajo tcsh de esta manera:
home% cat
^Z
Suspended
home% kill %1
home%
[1] Terminated cat
Además, dudo que esto funcione con sudo porque sudo invocaría un nuevo shell, ¿no? Y en ese shell,% 4 no se definiría.
home% cat
^Z
Suspended
home% sudo kill %1
Password:
kill: illegal process id: %1
Si realmente necesitas sudo, puedes intentar esto:
home% jobs -l
[1] + 26318 Suspended cat
home% sudo kill 26318
Otros consejos
Pruebe kill% 4
en su lugar. El shell de Unix usa% x como variables para los procesos actualmente en ejecución. Para ver los procesos que puede usar con la sintaxis% x, use jobs
. Killall es un envoltorio alrededor de " matar " eso es básicamente el equivalente de `ps -aux | grep | cortar -f2 -d " " | xargs kill 'o similar si eres un shell junky.
No, lo siento, ese comando de shell no funcionará, pero ilustra cómo funciona killall = p. Simplemente elimina todos los procesos que pueden coincidir con la cadena que proporciona.
También, intente `man kill 'para aprender más sobre kill. Particularmente, matar -9 puede ser útil. Es como el equivalente de 'forzar la salida'.