Question Comment gérer le signal dans le processus de premier plan?


J'ai des doutes, pourquoi ne pouvons-nous pas utiliser kill -s 9 <pid> ou kill -s 15 <pid> tuer le processus de premier plan? Quand j'essaie de faire la même chose, obtenir le résultat que l'identifiant du processus n'existe pas pendant que j'utilise les commandes susmentionnées pour tuer ce programme en arrière-plan.

root@onXXXX:~/Documents/Testing_Scripts/NEW_Scrits# sh infinite.sh 20
My process id is 23873 
Counting 20 
Counting 19 
kCounting 18 
ill Counting 17 
-s Counting 16 
15Counting 15 
 Counting 14 
23Counting 13 
8Counting 12 
73Counting 11 

Counting 10 
Counting 9 
Counting 8 
Counting 7 
Counting 6 
Counting 5 
Counting 4 
Counting 3 
Counting 2 
Counting 1 
root@onxXXXX:~/Documents/Testing_Scripts/NEW_Scrits# kill -s 15 23873
-bash: kill: (23873) - No such process

0
2017-08-12 11:25


origine


Bienvenue sur Ask Ubuntu! Je recommande de modifier votre question pour la développer avec des détails spécifiques sur ce que vous faites. Ajoutez le script et corrigez votre code. - abu_bua


Réponses:


D'après ce que je peux voir de vos sorties, votre script shell a été fermé et vous essayez de le tuer. Vous ne pouvez pas tuer un processus qui n'existe pas ...

Dans le même temps, vous ne pouvez pas exécuter un programme / commande dans un shell qu'un autre programme exécute au premier plan.

Donc, ce qui se passe en réalité, c'est que vous exécutez votre script, que vous attendez que son travail soit terminé, maintenant Shell est libre d'exécuter d'autres programmes et maintenant vous essayez de tuer le processus déjà terminé. Pendant ce temps, lorsque vous envoyez un processus en arrière-plan, vous pouvez utiliser le shell et tuer le processus pendant qu'il est en cours d'exécution.


0
2017-08-12 11:30



Je pense avoir compris, j'ai été un peu confus, après avoir rappelé le concept de co-routines et leur utilisation, je suis capable de le comprendre. Merci pour la clarification. - Sunny Kang