我有一个长时间运行的命令(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
标志),则可获得双倍奖励积分。
答案 0 :(得分:3)
也许这个:
#!/bin/zsh
redis-server &
redispid=$!
trap 'kill $redispid' INT
sidekiq