J'utilise l'extrait suivant pour tuer brusquement tout processus Java en cours d'exécution: J'aimerais avoir ceci dans un script shell que je peux exécuter sur plusieurs machines, mais quand je l'ai mis dans Le script et exécutez-le, il faut les 2 $ dans l'AWK comme un argument passé. J'ai essayé simple, double et triple backslashing le backslashing le $ mais rien ne fonctionne. P> Économie unique Résultats dans: P> awk: cmd. line:1 {print
awk: cmd. line:1: ^ unexpected newline or end of string
3 Réponses :
Du: Sortie d'échantillon: P> 28510
Pourriez-vous s'il vous plaît essayer la suivi (prise d'inspiration de @james Fine Réponse ici).
ps -ef | awk '/[j]ava/{cmd=(cmd?cmd OFS:"")$2} END{print "kill -9 " cmd}' | bash
Il y a une commande qui fait cela: Si vous voulez savoir ce que cela va faire avant de le faire fonctionner, vous pouvez Répertoriez les identifiants de processus correspondants avec: p> ou pour plus de détails: p> (ou pkill code> accepte le
-Signal code> (par exemple,
-9 code >) Notation Comme
Kill Code>, mais je vous recommande de commencer par des signaux plus faibles pour vous permettre de couper le temps pour les processus tués pour éteindre correctement. Je fais habituellement
-hup code> (Accueil,
-1 code>) puis standard (aucun drapeau pour terminer,
-term code> ou
-15 code>) puis
-9 code> (tuer,
-Kill code>). p>
pgrep java | xargs ps -f code> si vous préférez) p> p>
Vous devez modifier les citations doubles en guillemets simples dans l'expression
awk code>. Sinon, le
2 $ code> est traité comme une variable de coque plutôt qu'un champ / une colonne dans Awk.
Cela dit,
pgrep code> ou
pidof code> est mieux adapté à cet imo.
Je crois que Awk a sa propre utilisation pour $ {Number} variables. Peut-être une meilleure façon consiste à enregistrer les arguments $ sur d'autres variables et à les utiliser dans votre commande AWK.
Java CODE> Est-ce mauvais qu'il a besoin du
-9 code>?
citations simples ou doubles n'a pas d'importance. J'ai essayé les deux. J'utilise la fonction dans une fonction qui utilise attendre de sorte que toute la ligne soit cotée. La suggestion de Jetchisel d'utilisation de PGREP était la seule solution qui a fonctionné
J'utilise dans une fonction qui utilise attendre de sorte que toute la ligne est double citée code> - inclure ensuite ces informations dans votre question et montrez que le code dans votre exemple puisqu'il est extrêmement important.