如何中断watch命令?

如何中断watch命令?

我有一个程序可以将一些信息打印到标准输出,然后像这样运行它:

watch -n 0.1 myprogram

我的问题是我需要myprogram干净地退出,调用适当的析构函数来释放系统范围的互斥体。如果我按CTRL+ C,则会watch被杀死并且myprogram没有机会干净地退出。

有没有办法watch干净地退出,以便它等待子进程完成后再返回?

man页面简单地说:

手表将运行直到被中断

答案1

关于你问题的第一部分“有没有办法干净地退出手表?“,是的,您可以通过发送信号来停止进程。

首先你需要找出正在运行的进程 ID (PID)watch。您可以通过名称来执行此操作:

pidof watch

或由用户和如何在 Unix/linux 中查看特定用户创建的进程

ps -u ${USER} | grep -i watch | cut -d " " -f 1

进而watch通过发送信号停止喜欢

kill -IT ${PID}
kill -INT $(pidof watch)

你问题的第二部分更多关于处理信号

相关内容