2010-12-31 2 views
1

Je ne connais pas encore les scripts shell. Je dois écrire un script qui exécute cette commande pour obtenir le processus les ID pour les tâches ...Ubuntu shell scripting

ps aux | grep java | grep dbConvert2 | awk '{print $2}' 

puis faire d'autres choses, puis tuer le processus ID de que je SAISIR plus tôt ...

Je sais que je peux faire tuer -9, je ne sais pas comment saisir dynamiquement tous de PID et de les stocker sous forme de variables

+0

Vous devriez vraiment accepter plus de réponses à vos questions. 27% pourraient effrayer les gens. – plundra

+0

N'utilisez pas kill -9 pour la première commande que vous exécutez en général. Utilisez simplement kill et laissez le programme se nettoyer. Si la mort ne fonctionne pas, alors retombez pour tuer -9. C'est comme quand vous allez dans un magasin pour retourner quelque chose, vous ne commencez pas à crier au commis immédiatement; vous essayez d'être gentil d'abord, et puis commencez à crier et à agiter vos bras seulement après qu'ils vous ignorent. :) – dannysauer

Répondre

2

append | xargs kill -9 à votre commande en cours

[modifier] si vous voulez faire des opérations sur chaque id, vous pouvez utiliser une boucle, quelque chose comme:

for my_pid in `YOUR_CMD`; do 
    <some stuff with $my_pid> 
    kill -9 $my_pid 
done 
0
pkill -9 'java.*dbConvert2' 

Vous pouvez utiliser pgrep 'pattern' pour essayer différents modèles avant.

Edit: Si votre processus ne correspond pas, vous pourriez avoir besoin d'utiliser -f (s'applique à la fois pgrep et pkill, utilisez après la -9 bien) pour rechercher la commande entière, y compris les arguments.
Exemple: pkill -9 -f 'java.*dbConvert2'

+0

Je ne suis pas sûr, mais est 'pgrep' disponible avec l'installation de base? –

+0

Oui, c'est dans 'procps' qui est requis. (/ bin/kill est dans le * même * paquet) – plundra