2015-12-06 4 views
0

Je veux tuer un processus à distance et j'utiliser la commande ssh -i comme ceci:Exécuter des commandes à distance retourne la sortie inattendue

ssh -i $app_rsa_file_path [email protected]$app_server_ip "ps aux | grep java | grep billing | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1" 

si je lance la commande directement sur le serveur, il fonctionne très bien; mais dans la version à distance, il semble que awk n'a pas d'effet et la commande passe la sortie de l'ensemble ps aux | grep java | grep billing-kill et je reçois ceci:

kill: invalid option -- 'D' 

Usage: 
kill [options] <pid> [...] 

Options: 
<pid> [...]   send signal to every <pid> listed 
-<signal>, -s, --signal <signal> 
         specify the <signal> to be sent 
-l, --list=[<signal>] list all signal names, or convert one to a name 
-L, --table   list all signal names in a nice table 

-h, --help  display this help and exit 
-V, --version output version information and exit 

For more details see kill(1). 

Toute idée sur la raison?

+1

Je pense que u besoin d'échapper à la $ cmd ssh –

+0

Oui @LeeHoYo, qui était l'affaire Merci Pourriez-vous s'il vous plaît.. ajoutez-le comme une réponse? –

+0

ok, merci. :-) –

Répondre

1

vous utilisez des guillemets doubles "si vous avez besoin pour échapper au caractère spécial $.