我通过以下两个流程运行:
init_thing & start_thing
init_thing
轮询start_thing
的日志,查看它认为显示start_thing
已成功开始的特定行,然后对其执行一些命令(例如添加用户)。< / p>
如果init_thing
函数认为start_thing
已超时,则start_thing
函数可能会失败并返回非零退出代码。
start_thing
函数可能会失败,但如果成功则会永远运行。
如果init_thing
失败,我想要做的就是杀死parallel
。
我已经在很多答案中看到了GNU parallel
的使用,但它似乎依赖于两个进程完成(即以零退出代码退出),在我的情况下并没有&#39 ;适用。
有没有办法用bash做到这一点?也许以我尚未看到/理解的方式使用CREATE TABLE IF NOT EXISTS user (
id text,
login text,
password text,
firstName text,
lastName text,
gender text,
mobileNo text,
aadhar text,
email text,
stateCode text,
district text,
city text,
zipCode int,
address text,
PRIMARY KEY(id)
);
?
答案 0 :(得分:0)
陷阱ERR可能很有用,其中pid变量包含要杀死的进程的pid
trap 'kill $pid' ERR
在反思之后,明确写出更清楚
init_thing || {
echo "something goes wrong, killing $pid"
kill "$pid"
}