我试图在一个无限循环中运行一个程序,因为它有时会无缘无故地死掉。我希望能够按 Ctrl-C 以防止程序重新启动。
我不希望 Ctrl-C 杀死程序,只是等到它死掉,然后不再重新启动它。
theprogram
是一个葡萄酒程序(utorrent)。
告诉我如何制作它的奖励积分,因此它会theprogram
像点击右上角的“x”一样安全退出。kill
当我从命令行手动或按 Ctrl-C 时,它无法运行其清理代码。因此,我试图阻止它重新启动。
我检查了其他一些关于捕获 SIGINT 的问题,但我不知道如何做到这一点。
任何人都可以修复此代码吗?当按下 Ctrl-C 时,我的代码似乎会杀死theprogram
然后退出循环,而不是让theprogram
清理。
#!/bin/bash
EXIT=0
trap exiting SIGINT
exiting() { echo "Ctrl-C trapped, will not restart utorrent" ; EXIT=1;}
while [ $EXIT -eq 0 ] ; do
wine theprogram
echo "theprogram killed or finished"
date
echo "exit code $?"
echo "sleeping for 20 seconds, then restarting theprogram..."
sleep 20
done
echo "out of loop"