我正在从Bash script启动一个名为start.sh的Java代码。Bash脚本启动Java代码,然后Java代码运行。在Java程序结束时,我想向Bash脚本发送一个信号来终止它。请记住,Bash脚本是在PID = 1的情况下运行的,我必须终止PID为1的进程。
我设置了bash脚本,使其在无限循环中运行,并对终止信号执行waits:
#!/bin/bash
# Run the java code here..
# Listen for an exit command.
trap 'exit 0' SIGTERM
while true; do :; done我使用Docker实例,信号是sigterm。我正在学习本教程:https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/,它解释了如何从命令行发送sigterm。我想自动化这个过程,并在Java程序结束时立即从内部关闭/终止docker实例。
如何将信号发送回最初启动Java代码的bash脚本?
我应该跟随this method向bash脚本发送一个信号作为参数吗?或者它会使用不同的PID (而不是1)启动另一个bash脚本。
需要帮助!
发布于 2016-04-22 02:56:48
将其替换为'exec your_java_code_run'.
通过这种方式,docker在java代码运行结束后获得SIGTERM。
例如:
#!/usr/bin/env bash
set -e
someOtherCodeIfNeed
exec your_java_code_runhttps://stackoverflow.com/questions/36740676
复制相似问题