2016-05-25 2 views
0

QUESTION: Qu'est-ce que chaque élément de la commande:

pkill -INT -f '^php test_program.php$' 

faire quand je le lance dans le terminal linux? Je sais déjà que la commande tue le processus appelé test_program.php, mais je ne sais pas ce que font tous les différents éléments de la commande. S'il vous plaît expliquer dans une terminologie aussi simple que possible! Je suis nouveau aux commandes linux et je préfère bébé Lingo technologie Lingo au moment :)


MA RECHERCHE: En exécutant man pkill dans le terminal linux, un manuel apparaît avec la pkill définition suivante:

  • processus de signal en fonction de leur nom ou d'autres attributs.

ce qui me porte à croire que pkill non seulement tuer un processus, mais peut plutôt envoyer un grand nombre de signaux différents, dont l'un pourrait tuer le processus. La structure/synopsis de la commande pkill a été affiché comme: pkill [option] pattern

Dans la liste des options dans le même manuel, -f, -full avait la définition suivante:

  • Le modèle est normalement en correspondance avec le nom du processus. Lorsque -f est défini, la ligne de commande complète est utilisée.

Je n'ai pas complètement compris ce que cela voulait dire. En outre, il y a un -INT devant le -f dans la commande, ce qui me conduit à croire que plus d'une option peut être jointe, cependant -INT n'était pas affiché dans le manuel.

Les autres parties de la commande semblent identifier le programme en cours d'exécution: '^php test_program.php$', mais pourquoi cette partie de la commande n'est-elle pas simplement 'test_program.php'? Que fait ^php au début et $ et la fin faire?

Répondre

0

Vous regardez une expression régulière. Cette expression recherche la chaîne test_program.php n'importe où dans le nom du processus. Donc, si le nom du processus est quelque chose comme

/var/php -runcommand test_program.php 

il trouverait le processus et le tuer.

Cela explique également l'option -f, -full. Si vous n'utilisez pas une expression régulière, vous devrez prendre le nom complet du processus (la ligne précédente) pour correspondre au processus.

Enfin, le -INT est généralement utilisé pour envoyer un niveau d'exécution à la tâche.

EDIT

J'ai eu tort, l'option -INT n'est pas utilisé pour (runlevels qui sont pour le noyau Linux), mais d'envoyer des signaux à une tâche.Cela peut être quelque chose comme Term (terminer), Stop (fermer) ou Cont (continuer le processus). pkill envoie par défaut le signal de fin au processus. Le /var/php -runcommand test_program.php était un exemple pour un processus. Si vous utilisez la commande ps ax, vous obtenez une liste de tous les processus et des programmes qui les exécutent. Donc, j'ai juste supposé que l'interpréteur php réside dans /var/php/ et l'exécution du fichier php est une commande.

+0

Je suis un peu nouveau pour les commandes utilisées. Je ne suis pas tout à fait sûr de ce qu'est un niveau d'exécution, aussi je ne suis même pas sûr de ce que fait '/ var/php -runcommand test_program.php', exécutant probablement le programme comme je l'ai fait avec' php test_program.php'? Et quelle partie de l'ensemble du commandement tue le processus? parce que la définition de 'pkill' était de signaler les commandes, donc s'il y a beaucoup de commandes, laquelle de celles dans la ligne de commande spécifiait" kill "? – Webeng