macos - 在 Bash 中处理依赖进程

标签 macos bash redis zsh

我有一个长时间运行的命令(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/

相关文章:

macos - Cocoa:仅带有图像的按钮的辅助功能(VoiceOver)

macos - Mavericks - 尝试为 Inkscape 安装 XQuartz X11, "image not found"

bash - 不是空文件,但 "wc -l"输出 0

Bash 按列中的字符位置排序

Redis 未加载到 Codeship 中

python - 在 Mac OS X 上安装 psycopg2 时出现问题

objective-c - Cocoa App 启动闪屏

linux - 无法连接 bash 变量

redis - 如何在本地配置Redis缓存?

java - 实现某种 key :key:list in Redis? 的更简单方法