处理Bash中的依赖进程

时间:2014-02-28 19:38:59

标签: macos bash redis zsh

我有一个长时间运行的命令(sidekiq,如果你必须知道的话),这取决于另一个长时间运行的进程(redis-server,正如你可能从前面的括号中猜到的那样)。

我想在后台编写一个Bash(好吧,实际上是Zsh)别名来启动redis-server,然后运行sidekiq,当我使用ctrl-C来中断时sidekiq,杀死Redis的后台工作。如果它是相关的,我在Mac上只需要支持OS X.

所以我正在寻找的是:

redis-server & ; sidekiq ; kill $!

不幸的是,我对sidekiq命令的中断也阻止了kill的发生。有没有办法做到这一点?

奖励积分如果这可以是单行别名而不是函数。如果我不必提前写入任何文件(例如打开daemonize中的/usr/local/etc/redis.conf标志),则可获得双倍奖励积分。

1 个答案:

答案 0 :(得分:3)

也许这个:

#!/bin/zsh
redis-server &
redispid=$!
trap 'kill $redispid' INT
sidekiq
相关问题