动机:
在Java程序中,我设置了一个在-XX:OnOutOfMemoryError
上执行的bash脚本。该脚本负责将堆转储上载到HDFS。但是,通常只会上传文件的一部分。
我怀疑在上传脚本完成之前,JVM会被集群管理器杀死。我的猜测是JVM接收进程组kill信号并将bash脚本(即其子进程)也删除。
问题:
unix中是否有办法以这样的方式运行子进程:当父进程收到组终止信号时它不会死?
答案 0 :(得分:1)
您可以使用disown
。在后台启动该过程,然后将其取消,并且进程父级的任何终止信号将不再传播给子级。
脚本看起来像:
./handler_script &
disown