Tag: nohup

docker工人的过程背景

我试图找出如何使用nohup或屏幕,当我连接到容器或ssh到它背景进程。 似乎tty每次我退出时都会closures。 我知道有一种方法可以用docker文件来做到这一点,但我对这种方法没有兴趣。

一个bash脚本如何在发送信号给子程序的时候重启非0退出进程

在这个问题之后: 如何编写一个bash脚本来重启一个进程,如果它死了? 我试图做一个bash脚本,只是运行一个python脚本,并重新启动脚本,如果脚本以非0输出结束。 我的bash脚本看起来像这样: #!/bin/bash trap 'kill $(jobs -p)' SIGTERM SIGKILL; until python test.py & wait; do echo "Test Critically Crashed" >&2 sleep 1; done 虽然我的python脚本(虽然不是真正相关的)看起来像: import logging,sys,signal,time def signal_term_handler(signal, frame): print("SIGTERM recieved…quitting") sys.exit(0) signal.signal(signal.SIGTERM, signal_term_handler) while True: time.sleep(1) sys.exit(1) 我想运行bash脚本,让它运行我的过程无限的,直到我发送一个sigterm或sigkill到bash脚本,它将发送到subprocess(python test.py),并最终退出代码为0打破直到循环,干净地退出。 仅供参考我正在使用无限运行的Python脚本,并使用这个bash脚本作为入口点的docker集装箱。

docker运行从脚本分离,而不杀死容器

我有一个包含这一行的脚本: fgrep -m 1 'PostgreSQL init process complete' <( docker run –name test-postgres-migration \ -a STDOUT -p 5432:5432 postgres:9.4 ) 但是,即使我将其更改为: fgrep -m 1 'PostgreSQL init process complete' <( docker run –name test-postgres-migration \ -a STDOUT -p 5432:5432 postgres:9.4 </dev/null ) 要么: fgrep -m 1 'PostgreSQL init process complete' <( docker run –name test-postgres-migration \ […]

为什么docker执行官在退出时正在扼杀nohup进程?

我有一个bash脚本里面运行dockerUbuntu的容器。 我想用Docker exec来启动我的应用程序: docker exec -it 0b3fc9dd35f2 ./main.sh 在主脚本里面,我想用nohup运行另一个应用程序,因为这是一个长时间运行的应用程序: #!/bin/bash nohup ./java.sh & #with this strange sleep the script is working #sleep 1 echo `date` finish main >> /status.log java.sh脚本如下(为了简单起见,它是一个虚拟脚本): #!/bin/bash sleep 10 echo `date` finish java >> /status.log 问题是在docker exec返回之后java.sh被立即终止。 问题是为什么? 我发现的唯一解决方法是在nohup启动后,在第一个脚本中添加一些虚拟sleep 1 。 比第二个进程运行良好。 你有什么想法,为什么这样? [编辑] 第二个解决scheme是在睡眠之前给java.sh脚本添加一些echo或trap命令。 比它工作正常。 不幸的是,我不能使用这个解决方法,而不是这个脚本我有java进程。