Sur une base régulière, j'oublie d'ajouter && shutdown -h now
à un processus de longue haleine. Existe-t-il un moyen d'ajouter une shutdown -h now
commande après l'appel de la première commande? Il ne vise pas à interrompre le processus en cours. Peut-être qu'il est possible de regarder le PID?
command-line
bash
shutdown
process
brubaker
la source
la source
&&
ne fonctionnera que si la commande précédente a réussi. Si vous souhaitez qu'il s'exécute même si la commande échoue, utilisez;
plutôt.Réponses:
Il n'est pas nécessaire d'exécuter à plusieurs reprises ps pour répertorier tous les processus et grep à travers la sortie. Mettez le processus en arrière-plan avec ctrl-Z, puis exécutez
Si d'autres tâches d'arrière-plan sont en cours d'exécution, vous recevrez une spécification de tâche différente au lieu de [1] lorsque vous ctrl-z. Si oui, utilisez-le à la place.
la source
Vous pouvez faire quelque chose comme ceci, qui vérifiera si le processus s'exécute toutes les 5 secondes et prendra les mesures appropriées:
Notez les crochets dans l'
grep
expression. C'est pour s'assurer que legrep
processus ne soit pas mis en correspondance s'il finit dans laps
liste. Entourer n'importe quel caractère avec des crochets suffit.la source
Je le fais tout le temps.
&&
commande.fg && shutdown -h now
vers:Alternativement, vous pouvez interroger comme suggéré dans d'autres réponses comme celle-ci:
la source
Si vous connaissez le pid, vous pouvez exécuter ceci:
Pour exécuter sans écho de ps, procédez comme suit:
Et enfin pour l'exécuter en arrière-plan sans aucune sortie:
La solution de Scott est une bonne solution, mais cela élimine le besoin de
grep
répéter si vous connaissez déjà le pid. Et c'est beaucoup plus rapide à taper.: Pla source
Créez un script shell pour exécuter les deux processus:
MyShellScript.txt:
Après avoir enregistré cela dans le répertoire où vous démarrez le processus donné, procédez comme suit:
Ensuite, lorsque vous souhaitez exécuter la commande, tapez simplement
./MyShellScript.txt
et elle fera les deux pour vous.la source