我创建了一个脚本,用于检查某个服务器是否正在运行,并在发生崩溃时重新启动它(该脚本每10秒无限运行一次)。
如何停止/忽略/破坏脚本?我无法运行任何命令,CTRL + C,CTRL + A,CTRL + Z不起作用。
主要问题还在于机器服务器没有运行,因此MobaXterm无法访问IP。我在VirtualBox上运行Ubuntu 14.04,只有终端,没有GUI!
RestartScript:
#! /bin/bash
while :
do
COUNT="$(pgrep -f Odie | wc -l)"
echo $'\n'
echo "Number of Odie processes (COUNT) = $((COUNT))"
echo "$(pgrep -fla Odie)"
case "$(screen -ls | grep Odie | wc -l)" in
0) echo "Restarting Odie: $(date)" | sudo tee -a /var/log/OdieLog.txt
bash -c "exec -a OnlyOdie ./screen_start.sh"
;;
1) # all ok
echo "Process is running: $(date)" | sudo tee -a /var/log/OdieLog.txt
;;
2) echo "Removed double Odie: $(date)" | sudo tee -a /var/log/OdieLog.txt
#kill $(pgrep -f OnlyOdie | awk '{print $1}')
screen -ls | awk -vFS='\t|[.]' '/Odie/ {system("screen -S "$2" -X quit")}'
;;
esac
sleep 10
done
screen_start.sh
#! /bin/bash
SCREEN_COUNT="$(screen -ls | grep Odie | wc -l)"
if [ "$SCREEN_COUNT" -eq 0 ]
then
echo "SCREEN_COUNT = ZERO"
screen -sdm ./start.sh -S Odie
fi
遗憾的是,我无法添加ROS文件内容,因为我无法访问它。
答案 0 :(得分:0)
由于我无法从其他来源访问它,我找到了一种在Linux中使用以下选项切换屏幕的方法: CTRL + Alt + F1 (转到 F6 )。
这使得以用户身份登录并重新编辑文件/终止流程成为可能。