2016-12-27 8 views
0

sshでリモートプロセスを殺すことができません:私は、SCPとタッチ句が実行されていた見つけ、それを実行した後私は次のようにシェルスクリプトを使用してリモートプロセスをkillする必要が

#!/bin/bash 

ip="172.24.63.41" 
user="mag" 
timeout 10s ssh -q [email protected]$ip exit 
if [ $? -eq 124 ] 
then 
    echo "can not connect to $ip, timeout out." 
else 
    echo "connected, executing commands" 
    scp a.txt [email protected]$ip://home/mag 
    ssh -o ConnectTimeout=10 [email protected]$ip > /dev/null 2>&1 << remoteCmd 

    touch b.txt 
    jobPid=`jps -l | grep jobserver | awk '{print $1}'` 
    if [ ! $jobPid == "" ]; then 
     kill -9 $jobPid 
    fi 
    exit 

remoteCmd 

echo "commands executed." 
fi 

を、しかしキル句はありませんでした成功して実行され、プロセスはまだそこにあります。私が "jobPid = ..."からリモートマシン上の "fi"に句を実行すると、そのプロセスは強制終了されます。それを修正するには?

答えて

0

スクリプトにはrootアクセスが必要です(これは決して良い考えではありません)。または実行中のプログラムがあなたのwebuser/groupの下で実行されていることを確認してください。

+0

おかげでたくさん、私はあなたの提案をしようとします。 – user1803467

+0

"root"に変更してスクリプトを実行しました。それでもプロセスを殺すことはできません。しかし、scpとtouch節はうまく働いています。他に何か提案をお願いしますか?ところで、Webユーザー/グループはどういう意味ですか?前もって感謝します。 – user1803467

0

私はプロセスを見つけて殺すことができるリモートマシンにスクリプトを置いて、スクリプトを実行するローカルマシン上でスクリプトを実行しました。 sshを使用したリモートマシン。次のようにスクリプトは次のとおりです。

ローカルスクリプト:

#!/bin/bash 
ip="172.24.63.41" 
user="mag" 

timeout 10s ssh -q [email protected]$ip exit 
if [ $? -eq 124 ] 
then 
    echo "can not connect to $ip, timeout out." 
else 
    echo "connected, executing commands" 
    ssh -q [email protected]$ip "/home/mag/local.sh" 
    echo "commands executed." 
fi 

リモートスクリプト:

#!/bin/bash 
jobPid=`jps -l | grep jobserver | awk '{print $1}'` 
if [ ! $jobPid == "" ]; then 
    kill -9 $jobPid 
fi 
関連する問題