sudo Kill:SSHによる操作は許可されていません。

sudo Kill:SSHによる操作は許可されていません。

heredocリモートコンピュータで複数行コマンドを実行するために使用されます。リモートシステム上のサーバーをシャットダウンするには、サーバーのPIDを取得します。

#!/bin/bash

HOST_IP="10.180.5.23"
read -p "For HOST RESTART press 1" num
if [ "$num" == "1" ]
then
    ssh -t -t $HOST_IP << 'EOSSH'
    line=$(pgrep -f host_server1)
    echo $line
    arr=($line)
    sudo kill -9 "${arr[1]}"
EOSSH 
fi

エラー:kill:(15015) - 操作は許可されていません。

ベストアンサー1

あなたが持っているなら、pgrepあなたもそうする可能性がありますpkill

pgrepこれによりkill理論的競争条件が発生します。これを使用するとpkill(スクリプトで)競合状態が排除され、PIDを保持するために変数を使用する必要がなくなります。

ssh -t -t "$HOST_IP" pkill -f host_server1

KILLまたは信号を送信したい場合:

ssh -t -t "$HOST_IP" pkill -KILL -f host_server1

-fpgrepおよびを使用すると、pkillプロセス名だけでなく、コマンドライン全体のパターンが一致します。

-nとの場合-o(それぞれ)、最新または最も古い一致プロセスが影響を受けます。したがって、KILL最新の情報が必要で、host_server1他の情報は望ましくない場合:

ssh -t -t "$HOST_IP" pkill -KILL -n -f host_server1

おすすめ記事