当我运行以下命令时,我正在使用 keycloak 服务器:
standalone.sh
此命令启动服务器,并且在执行 Ctrl-C 命令之前我无法停止它。我想运行这样的指令:
standalone.sh && jboss-cli.sh -c --commands=shutdown
或者
standalone.sh ; jboss-cli.sh -c --commands=shutdown
基于这个问题shell 的控制和重定向运算符是什么?我找到;
将在另一个命令完成后运行一个命令,无论第一个命令的结果如何。
和&&
用于构建 AND 列表,它允许您仅在另一个命令成功退出时才运行一个命令。
但就我而言,第一个任务没有退出并且仍在执行。是否有任何解决方案可以运行另一个任务来停止第一个任务?
答案1
&
在第一个命令的末尾添加一个。
standalone.sh & jboss-cli.sh -c --commands=shutdown
该单个 & 符号是一个命令分隔符,就像 一样;
,但发送先前的命令以在后台异步运行,并让后续命令立即启动。
答案2
正如所指出的用户1404316,standalone.sh & jboss-cli.sh -c --commands=shutdown
可能就是您想要的。唯一的问题是,如果standalone.sh
执行需要时间(可能确实如此),我会插入一个sleep
来抵消执行时间,例如:
standalone.sh & sleep $amount_of_time_in_seconds; jboss-cli.sh -c --commands=shutdown