Impossible de terminer un travail sans l'ouvrir
Question
Je lance le code suivant sans succès
sudo killall %4
où% 4 correspond à ma session Vim.
Comment terminer un travail sans le mettre au premier plan?
La solution
Je pense que vous souhaitez "tuer". au lieu de "killall". J'ai testé sous tcsh comme ceci:
home% cat
^Z
Suspended
home% kill %1
home%
[1] Terminated cat
De plus, je doute que cela fonctionne avec sudo car sudo invoquerait un nouveau shell, n'est-ce pas? Et dans ce shell,% 4 ne serait pas défini.
home% cat
^Z
Suspended
home% sudo kill %1
Password:
kill: illegal process id: %1
Si vous avez vraiment besoin de sudo, vous pouvez essayer ceci:
home% jobs -l
[1] + 26318 Suspended cat
home% sudo kill 26318
Autres conseils
Essayez plutôt kill% 4
. Le shell unix utilise% x en tant que variables pour les processus en cours d'exécution. Pour voir les processus que vous pouvez utiliser avec la syntaxe% x, utilisez jobs
. Killall est une enveloppe autour de & kill; kill " c'est essentiellement l'équivalent de `ps -aux | grep | couper -f2 -d " " | xargs kill 'ou similaire si vous êtes un shell junky.
Non, désolé, cette commande shell ne fonctionnera pas tout à fait, mais elle illustre bien le fonctionnement de killall = p. Il tue simplement tous les processus qui correspondent à la chaîne que vous fournissez.
Essayez également "man kill" pour en savoir plus sur le kill. En particulier, kill -9 peut vous être utile. C'est en quelque sorte l'équivalent de "forcer à quitter".