使用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) - 不允许操作
答案 0 :(得分:1)
heredoc工作正常,但是sudo希望你输入密码,并且没有终端连接到服务器上执行命令的ssh。您有两种选择,既不完全安全:
这些通常适用于以root身份运行脚本。您的另一个特定于此情况的选项是以运行服务器进程的用户身份登录,这样您就不会从kill中获得操作。