Quand je programme open -F -W -n -g -a /Applications/Safari.app/Contents/MacOS/Safari https://kernel.org
j'ai récupéré le processus de open
et son pid 93930.
Mais ce n'est pas le processus (93931) de l'instance Safari nouvellement créée elle-même.
huocp 93931 0.0 1.9 6047904 160240 ?? S 11:55am 0:04.39 /Applications/Safari.app/Contents/MacOS/Safari
huocp 93930 0.0 0.1 4340272 12212 s004 S+ 11:55am 0:00.07 open -F -W -n -g -a /Applications/Safari.app/Contents/MacOS/Safari https://kernel.org
Maintenant, je n'ai aucun moyen de fermer le processus Safari par programmation. Je peux fermer le open
programme le processus en tuant 93930, mais il laisse 93931 en marche.
La question est donc la suivante : existe-t-il un moyen d'obtenir le pid de l'instance d'application créée par open
commande ?
93931 (safari) n'est même pas un processus enfant de 93930 (open), j'ai essayé avec la commande pstree.
1 votes
Juste un FWI,
open -FWnga Safari https://kernel.org
fait la même chose que le commande que vous avez montrée, pas besoin de la dessiner comme vous l'avez fait. Si vous cherchez à fermer la dernière occurrence ouverte de Safari, c'est ce qu'il faut faire :kill -nx Safari
Cependant, la prochaine fois que vous utiliserez l'option susmentionnéeopen
commande le-F
option seront ignorés. En d'autres termes, la prochaine fois, il y aura deux onglets pourhttps://kernel.org
.0 votes
@user3439894 le mac kill est une version bsd, il semble qu'il ne connaisse pas l'existence de
-nx
mais pgrep fait l'affaire.1 votes
pkill -nx Safari
le fera.kill
était une erreur de frappe de ma part, que j'ai manquée lorsque j'ai copié le texte à partir du terminal après l'avoir testé.