一旦可执行文件关闭,在bash中执行一些命令?

时间:2014-03-19 18:50:26

标签: linux bash

我有一个应用程序会在特定时间自行关闭,是否有一种方法可以让bash脚本在应用程序关闭后再执行某些命令(如移动日志文件,清理临时文件),然后重新启动它?

2 个答案:

答案 0 :(得分:3)

重新发明这个轮子是可能的,尽管不是一个好主意。

这可以很简单:

while :; do
  ./run-your-process
  do-some-cleanup
done

但是真的 - 不要。使用runit,upstart,daemontools,systemd,supervisord或许多其他工具之一,它们将为您自动完成此过程。

答案 1 :(得分:0)

如果您在后台启动脚本中的主进程,则可以使用&set -bm'来启用bash中的作业控制。然后陷阱SIGCHLD并进行清理并在信号处理程序中重新启动。

#!/bin/bash

set -bm

childexit() {
   ... cleanup and restart
}

trap 'childexit' SIGCHLD

mainprocess &