无法使用ssh终止远程进程

时间:2016-12-27 08:39:15

标签: shell ssh process kill

我需要使用shell脚本终止远程进程,如下所示:

<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:layout_marginTop="50dp" />

执行后我发现scp和touch子句已经执行,但是kill子句没有成功执行,过程仍在那里。如果我从&#34; jobPid = ...&#34;运行条款to&#34; fi&#34;在远程机器上可以杀死进程。如何解决?

2 个答案:

答案 0 :(得分:1)

我在远程机器上放了一个脚本,可以找到并终止进程,然后我在本地机器上运行脚本,用ssh在远程机器上执行脚本。脚本如下:

本地脚本:

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

timeout 10s ssh -q $user@$ip exit
if [ $? -eq 124 ]
then
    echo "can not connect to $ip, timeout out."
else
    echo "connected, executing commands"
    ssh -q $user@$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

答案 1 :(得分:0)

您的脚本需要root访问权限(这绝不是一个好主意)。或者确保正在运行的程序在您的webuser / group下运行