我有一个长时间运行的命令(sidekiq
,如果你必须知道的话)依赖于另一个长时间运行的进程(redis-server
,你可能已经猜到了)来自前面的括号)。
我想写一个 Bash(嗯,好吧,实际上是 Zsh)别名来在后台启动 redis-server
,然后运行 sidekiq
,当我使用ctrl-C
中断sidekiq
,杀死后台Redis 作业。如果相关,我使用的是 Mac,只需要支持 OS X。
所以我要找的是这样的东西:
redis 服务器 & ; sidekiq ;杀死 $!
不幸的是,我对 sidekiq
命令的中断也阻止了 kill
的发生。有什么办法吗?
如果这可以是单行别名而不是函数,则加分。如果我不必提前写入任何文件(例如打开 /usr/local/etc/redis.conf
中的 daemonize
标志),则加倍奖励积分。
最佳答案
也许是这样的:
#!/bin/zsh
redis-server &
redispid=$!
trap 'kill $redispid' INT
sidekiq
关于macos - 在 Bash 中处理依赖进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104358/