我们服务器的一位用户不知怎么挂断了他的 xRDP 连接。现在他再也无法连接了。每次他尝试连接时,都会看到一个空白的黑屏。我认为这是由于他正在运行的 X11rdp 进程中出现了一些错误,所以我尝试使用killall X11rdp
、kill -KILL
、kill -s SIGCHLD
、来终止该进程kill -9
...然后我尝试使用 终止该用户的所有进程pkill -u
。但它们不会消失。一个都没有。我真的不知道发生了什么。有什么想法吗?
附言
当然,我以root身份执行了所有这些命令。
答案1
在用户拥有的进程上运行此脚本。如果某个进程出现问题,它会显示父进程。然后您可以在父进程上运行该脚本。
我尚未发现它随后不会终止的进程。
使用以下命令创建 bash 脚本:
$ gedit killprocess.sh
剧本:
#!/bin/bash
if [[ ! "$1" ]]
then
echo "Parameter error... exiting..."
exit
fi
process=$1
count=0
results=0
while [[ $(ps h -fp $process) ]]
do
kill -9 $process
str1=$(ps h -fp $process|awk '{print "["$2"]["$3"]"}')
results=$?
echo -ne "[$str1]Response:$results..."
ret2=$(ps -ef | egrep "\s$process\s" | awk '$2 == '$process'{print "["$2"]["$3"]"}')
if [ ! "$ret2" ]
then
break
fi
if [[ -f stop ]]
then
exit
fi
if [[ $((count++)) -gt 5 ]]
then
echo -ne "\nGiving up... exiting...\n"
exit
fi
sleep 20
done
echo -ne "\n"
使其可执行:
$ chmod +x killprocess.sh
运行脚本:
$ sudo ./killprocess.sh