天道酬勤,学无止境

nohup causes "read_passphrase: can't open /dev/tty"

I have a simple remote ssh command in script, nohupssh.sh

sleep 30
ssh -v  -l developer server11  "/usr/local/jdk1.7.0_45/bin/jmap -histo:live 1770;"

I run the script as follows:

nohup nohupssh.sh > out.log 2>&1 & 

When I execute it as shown above, the jmap utility successfully executes on the remote server. However, if I execute it as shown above and exit the bash shell, I get the error shown below.

Note that I have a properly formatted authorized_keys in both local and remote servers. Also note that there is NO id_rsa in either server since these servers are shared.

I've tried many combinations:

ssh -v -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null server11 .... 

but to no avail. I've closely examined the man page for ssh for clues, trying various options. I presume there must be a single or set of ssh options that will solve this problem. The real script (rather than the abridged above) has scp as well. Hence, I hope the options that are eluding me will work for both scp and ssh.

The full verbose log is

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /home/developer/.ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to server11 [10.255.10.20] port 22.
debug1: fd 4 clearing O_NONBLOCK
debug1: Connection established.
debug1: identity file /home/developer/.ssh/identity type -1
debug1: identity file /home/developer/.ssh/id_rsa type -1
debug1: identity file /home/developer/.ssh/id_dsa type -1
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
Warning: Permanently added 'server11,10.255.10.20' (RSA) to the list of known hosts.
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
****************************************************************************
WARNING: Unauthorized access to this system is forbidden and will be
prosecuted by law. By accessing this system, you agree that your
actions may be monitored.
****************************************************************************


debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/developer/.ssh/identity
debug1: Trying private key: /home/developer/.ssh/id_rsa
debug1: Trying private key: /home/developer/.ssh/id_dsa
debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: No such device or address
ssh_askpass: exec(/usr/libexec/openssh/ssh-askpass): No such file or directory
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
ssh_askpass: exec(/usr/libexec/openssh/ssh-askpass): No such file or directory
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
ssh_askpass: exec(/usr/libexec/openssh/ssh-askpass): No such file or directory
debug1: Authentications that can continue: publickey,password
debug1: No more authentication methods to try.
Permission denied (publickey,password).
标签

评论

From the error log:

Authentications that can continue: publickey,password

Since you don't have a publickey set up ("there is NO id_rsa"), you need to enter a password to access the remote server, but you've disconnected stdin:

read_passphrase: can't open /dev/tty: No such device or address

SSH is not very amenable to hacks to automate password entry, so if you can't put an id_rsa on there, your best bet is to background and detach after entering the remote server's password. Try ^Z:

  1. Run nohup nohupssh.sh > out.log 2>&1
  2. Wait 30 seconds, then enter the remote server password
  3. Hit control-Z
  4. Run bg %1
  5. You should now be able to exit the shell.

I had this read_passphrase: can't open /dev/tty error when my private key was wrongly formatted - instead of many lines, it was passed as a one-liner, and you might have any other format issue like a forgotten "-" at the start or end, or something wrong at the end of the lines, like a missing newline format or an additional letter at the end of a line.

See Dockerfile: clone repo with passwordless private key. Errors: “authentication agent” or “read_passphrase: can't open /dev/tty” for more details, with the main idea from Add private key to ssh-agent in docker file, which again had the idea from Gitlab CI/Docker: ssh-add keeps asking for passphrase.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Linux个人学习记录:进程工作管理之nohup和&的理解
    废话少说,开门见山吧! 一般情况下在Linux终端下输入的命令几乎都会开启一个子进程,而这个子进程默认的父进程就是当前的shell,默认在前台执行。要想放到后台执行有如下方法。 1、单独使用 & 用法:命令 参数… &(和前面空格隔开)。如sudo apt-get update & 个人理解:但是由于该子进程的父进程还是当前的终端shell,当用户与该终端断连后,而断连后该终端shell的进程就会被系统关掉,这样会导致该shell开启的子进程都会被关掉,也就导致之前用&放到后台的进程被杀掉了。 &的特点:将命令放到后台,不受到前台输入的ctrl+c中止命令影响,但关掉终端,后台进程也会关掉。 2、单独使用 nohup 用法:nohup 命令 参数…。如nohup sudo apt-get update 个人理解:我觉得,nohup本身不是将命令放到后台执行,而是让该命令子进程的父进程在被删除时,将子进程的PPID(父进程)归于系统管理(没有终端机了,这时就相当于放到后台了),这样就不至于在终端机关闭后导致子进程被杀。 我新建个脚本,在脚本中写如比较费时的代码,然后运行,很明显直接运行是阻塞了当前shell的,并且它也给了提示,输入都会被忽略,输出重定向到了nohup.out文件(在用户主文件夹下),直到命令完成工作。感觉这样直接使用就没有什么意义了(跟后面的 nohup + & 比
  • 带有 nohup 的 Shell_exec php(Shell_exec php with nohup)
    问题 我认为有很多类似的帖子,但经过搜索后我还没有找到解决方案。 基本上,我试图在后台运行两个脚本。 当我在命令行中运行它们时,我在调用我的第一个脚本后看到: /usr/bin/nohup php script.php > nohupoutput.log & echo $! 我试过...script.php > /dev/null &并得到相同的结果。 我得到: /usr/bin/nohup: ignoring input and redirecting stderr to stdout 我忽略并运行第二个。 我注意到它似乎挂在那里,然后按Enter将我带回machine:~folder> /usr/bin/nohup php script2.php > nohupoutput.log & echo $! 两个脚本都有效。 然后我尝试将其转换为 shell_exec 命令,但似乎没有任何效果。 我怀疑ignoring input位造成了困难,但我不确定。 无论如何,以下方法不起作用。 它只是挂在浏览器中: $output = shell_exec('/usr/bin/nohup php script.php > /dev/null &'); $output = shell_exec('/usr/bin/nohup php script2.php > /dev/null &')
  • Shell_exec php with nohup
    I think there are tons of similar posts but I haven't yet found a solution after searching around. Basically, I'm trying to run two scripts in the background. When I run them in the commandline, I see after calling my first script: /usr/bin/nohup php script.php > nohupoutput.log & echo $! I've tried ...script.php > /dev/null & with the same result. I get: /usr/bin/nohup: ignoring input and redirecting stderr to stdout which I ignore and run the second one. I noticed that it seemed to be hanging there, and pressing Enter brought me back to machine:~folder> /usr/bin/nohup php script2.php >
  • nohup java -jar 命令启动jar包,项目仍然会莫名其妙挂掉的解决方法
    问题描述: 暑假期间在个人服务器(centos7)上部署springcloud项目。出现了服务莫名其妙会挂掉一两个的问题,重新启动挂掉的服务之后又会出现其他服务挂掉的情况,查看启动日志也并没有发现有异常抛出。令人费解的是所有的服务都是通过nohup java -jar xxx.jar &启动的,理论上不会随随便便挂掉。 产生原因: 一开始我猜测,是GC回收,导致服务挂掉。但并不是这么回事,GC虽然有STW现象,但是一般不会结束总进程。后面折腾了好几天,才发现,因为启动的jar包项目过多,服务器运行内存不足,linux系统kill掉了某些jar进程。 因此,总结来说,多个springboot项目部署在同一台服务器上,都有可能出现nohup java -jar启动的进程仍莫名其妙挂掉的问题,如果是企业,应该换用更好的服务器配置,但是我们个人没有那么多资金购买服务器怎么办?其实有两种解决方法: 解决方法: 第一种方法:进行JVM调优可以改善这种情况,但是项目太多,我们的个人服务器配置实在太低,仍然无法解决此问题,这里不做讨论了。 第二种方法:我们可以通过分配虚拟内存的方式解决,下面红色的字体部分就是需要执行的命令 步骤一、查看当前的内存使用情况 free -m 步骤二、划分虚拟内存分区(大小为2G),执行命令大约15-20秒无响应 dd if=/dev/zero of=/var/swap
  • Jenkins管道sh失败,并在Windows上“无法运行程序nohup”(Jenkins pipeline sh fail with “cannot run program nohup” on windows)
    问题 我有Windows 10,我想使用bash for Windows的Jash从Jenkins管道在Jenkinsfile中执行sh命令,但是它不起作用 在Jenkins管道中,我处于以下阶段: stage('sh how to') { steps { sh 'ls -l' } } 错误消息是: [C:\ Program Files(x86)\ Jenkins \ workspace \ pipelineascode]运行外壳程序脚本无法运行程序“ nohup”(在目录“ C:\ Program Files(x86)\ Jenkins \ workspace \ pipelineascode”中):CreateProcess error = 2 ,不可思议的特殊性 我尝试使用更改Jenkins parameter-> shell可执行文件 C:\ Windows \ System32 \ bash.exe 但同样的错误... 如何使用Windows 10的bash运行sh脚本? 回答1 通过快速搜索,您的错误似乎与以下问题有关:JENKINS-33708 主要原因可能是Windows不支持sh步骤。 例如,您可以使用bat或安装Cygwin 。 但是,在上一个链接中提出了两种解决方案,建议您执行以下步骤: 安装git-bash 确保Git \ bin文件夹(即C
  • Amazon EC2 NodeJS server stops itself after 2 days even after using sudo nohup
    I have my app running on http://talkwithstranger.com/ and I have deployed it on AWS EC2. I use this command sudo nohup node index.js & To continue running my Node JS server even if I close my terminal and exit my SSH. However, after 2 days everytime I wake up and I find out that the node server itself stops automatically. I checked the running processes by using ps -ef and my node script is not there. Google Chrome say site DNS not found, because NodeJS Express is not running of course to serve my html file, but why it stops itself? What is causing this unexpected shutdown of my server after
  • 运行python脚本后台执行
    在Linux中,可以使用nohup将脚本放置后台运行,如下: nohup python myscript.py params1 > nohup.out 2>&1 & 1 但直接使用上面代码,无法在程序运行过程中查看Python中的print "computing" 输出结果,比如在每次循环中使用print语句等。原因是python的输出有缓冲,导致nohup.out不能够马上看到输出。 解决方法: 使用-u参数,使得python不启用缓冲。 修改命令如下: nohup python -u myscript.py params1 > nohup.out 2>&1 & 如果没有参数 nohup python myscript.py > nohup.out 2>&1 & 来源:https://blog.csdn.net/msy123_ycj/article/details/106113576
  • nohup 是如何工作的? [关闭](How does nohup work? [closed])
    问题 关闭。 这个问题是题外话。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 8 年前关闭。 改进这个问题 当程序使用 nohup 运行时,幕后执行了什么? 是否更改了父进程的 PID? 谢谢。 编辑:我知道 nohup (和 disown)会导致如果父进程收到 SIGHUP 则不会将其发送到进程。 这是否意味着它等同于处理 SIGHUP(实际上忽略它)? 回答1 使用来源,卢克! (添加了额外的字符以保持新的答案长度规则满意。) 回答2 它相当于将SIGHUP处理程序设置为SIG_IGN ,即。 signal(SIGHUP, SIG_IGN); 回答3 维基百科关于 nohup 的文章很好地解释了它。
  • 退出 zsh,但让正在运行的作业保持打开状态?(Exit zsh, but leave running jobs open?)
    问题 刚刚从 bash 切换到 zsh。 在 bash 中,后台任务会在 shell 退出时继续运行。 例如这里, dolphin在exit后继续运行: $ dolphin . ^Z [1]+ Stopped dolphin . $ bg [1]+ dolphin . & $ exit 这就是我想要的默认行为。 相比之下, zsh 的行为是在exit运行作业时发出警告,然后在您再次exit时关闭它们。 例如,当第二个exit命令实际退出 shell 时, dolphin关闭: % dolphin . ^Z zsh: suspended dolphin . % bg [1] + continued dolphin . % exit zsh: you have running jobs. % exit 我如何使 zsh 的默认行为像 bash 一样? 回答1 用&!启动程序 : dolphin &! &! (或等效地,&|)是一个 zsh 特定的快捷方式,用于后台和拒绝进程,这样退出 shell 将使其继续运行。 回答2 从 zsh 文档: HUP ... 在 zsh 中,如果您在 shell 退出时有一个后台作业正在运行,则 shell 会假设您希望它被杀死; 在这种情况下,它会发送一个名为SIGHUP的特定信号......如果您经常启动即使在 shell 退出时也应该继续的作业
  • nohup java -jar 启动springboot项目时JVM参数调优
    背景: java version "1.8.0_11" 项目用springboot写的,以往启动都没有设置JVM参数,都是默认的。 今天遇到频繁FGC的情况,导致服务器CPU占用超级高,而且FGC并不能有效的回收对象内存。 1.ps查询对应进程: [root@10-9-166-14 server]# ps aux|grep addition root 22670 43.5 5.8 4734040 944636 ? Sl 21:37 53:18 java -jar -server -Xms1g -Xmx1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1MaxNewSizePercent=30 -XX:+DisableExplicitGC -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStampsaddition031601.war root 30282 0.0 0.0 103256 972 pts/2 S+ 23:40 0:00 grep addition 2.jstat -gcutil (查看GC汇总信息),看下对应的堆内存各部分的使用量: [root@ logs]#
  • How does nohup work? [closed]
    Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 8 years ago. Improve this question What is performed behind the scenes when a program runs with nohup? Is the PID of the parent process being changed? Thanks. EDIT: I understood that nohup (and disown) causes that SIGHUP is not sent to the process if the parent process receives it. Does it mean that it is equivalent to handling SIGHUP (and actually ignore it)?
  • How do I put an already-running process under nohup?
    I have a process that is already running for a long time and don't want to end it. How do I put it under nohup (that is, how do I cause it to continue running even if I close the terminal?)
  • 关于命令: nohup java -jar xxx.jar >log.log 2>&1 & 的解释。
    举例: nohup java -jar xxx.jar >log.log 2>&1 &: 解释: 1. 带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上); 2. 2>&1的意思: 这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的. 简单掌握,通过https://www.cnblogs.com/heroinss/p/11592860.html博主分享的我截取一部分吸收了一下,记录下来了。如果你单纯的想了解这句的意思。我这篇够你理解的了,想要丰富的话,进地址去看,稍微多一点,希望你们有耐心。 来源:https://blog.csdn.net/weixin_40583191/article/details/102661063
  • 异步Shell命令(Asynchronous shell commands)
    问题 我正在尝试使用Shell脚本来启动命令。 我不在乎是否/何时/如何/为什么完成。 我希望该过程开始并运行,但是我希望能够立即回到我的外壳... 回答1 您可以只在后台运行脚本: $ myscript & 请注意,这与将&放入脚本中是不同的,后者可能不会执行您想要的操作。 回答2 每个人都只是忘了disown 。 因此,这里是一个摘要: &将工作放在后台。 使其在尝试读取输入时阻塞,并且使外壳不等待其完成。 disown会从Shell的作业控件中删除该进程,但仍将其连接到终端。 结果之一是外壳程序不会将其发送给SIGHUP (如果外壳程序收到SIGHUP ,它还会将SIGHUP发送给进程,这通常会导致进程终止)。 显然,它只能应用于后台作业(因为在前台作业运行时无法输入)。 nohup断开进程与终端的连接,将其输出重定向到nohup.out并将其与SIGHUP屏蔽。 该进程将不会收到任何发送的SIGHUP 。 它完全独立于作业控制,并且原则上也可以用于前台作业(尽管这不是很有用)。 通常与& (作为后台作业)。 回答3 nohup cmd 关闭终端时不会挂断。 默认情况下输出到nohup.out 您可以将其与背景结合使用, nohup cmd & 并摆脱输出, nohup cmd > /dev/null 2>&1 & 您也可以disown命令。 输入cmd , Ctrl-Z ,
  • 如何在不获取nohup.out的情况下使用nohup命令?(How do I use the nohup command without getting nohup.out?)
    问题 我的nohup命令有问题。 当我完成工作时,我有很多数据。 输出nohup.out变得太大,并且我的进程变慢了。 如何在不获取nohup.out的情况下运行此命令? 回答1 如果输出否则将输出到终端,则nohup命令仅写入nohup.out 。 如果您已将命令的输出重定向到其他位置(包括/dev/null ),那么它将代替它。 nohup command >/dev/null 2>&1 # doesn't create nohup.out 如果您使用的是nohup ,则可能意味着您想通过在整个内容的最后加上另一个&在后台运行命令: nohup command >/dev/null 2>&1 & # runs in background, still doesn't create nohup.out 在Linux上,使用nohup运行作业也会自动关闭其输入。 在其他系统(尤其是BSD和macOS)上并非如此,因此在后台运行时,您可能需要手动关闭输入。 虽然关闭输入对nohup.out的创建或不起作用没有影响,但它避免了另一个问题:如果后台进程尝试从标准输入中读取任何内容,它将暂停,等待您将其放回前台并键入内容。 因此,超安全版本如下所示: nohup command </dev/null >/dev/null 2>&1 & # completely detached from
  • 在 Linux 上以批处理模式运行 R:输出问题(Running R in Batch Mode on Linux: Output Issues)
    问题 我在 linux 集群上运行 R 程序,因为它对我的处理器要求很高。 我的程序旨在将多个(大约 15 个)绘图作为 PDF 输出到程序从中收集输入的文件夹中。 我希望我的程序在后台运行,并在我退出集群时继续运行。 首先,我试过这个: cd /Users/The/Folder/With/My/RScript #changed working directory nohup ./BatchProgram.R & 但是,这不起作用,因为它将输出附加到一个名为nohup.out的文件中,并且没有输出我需要的任何 PDF。 接下来我尝试了这个: cd /Users/The/Folder/With/My/RScript #changed working directory R #to run R source(‘BatchProgram.R’) #to run my program 这给了我想要的输出,但没有在后台运行程序(当我退出集群时会停止)。 有人能告诉我如何在后台运行程序并使其在我注销 linux 集群后继续运行时如何获得我的第二个代码块的输出(如第一个代码块)? 非常感谢! 回答1 nohup在后台运行一个命令,使其忽略告诉它停止的信号(例如,当您注销时),并将输出重定向到一个文件。 但它必须是一个可执行命令:您可能在nohup.out有错误消息告诉您BatchProgram
  • Redis实践详细总结
    【1】Redis启动过程中的三个警告 23494:M 19 May 10:32:14.171 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 23494:M 19 May 10:32:14.171 # Server started, Redis version 3.2.6 23494:M 19 May 10:32:14.171 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 23494:M 19 May 10:32:14.172 # WARNING you have Transparent Huge Pages
  • Linux后台运行任务nohup结合&用法以及如何精准查找进程并kill后台任务实践
    转自 https://segmentfault.com/a/1190000021265829?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 前言 nohup为什么要跟着&一起使用,不知道大家有没有思考过其中的小区别,另外很多人会推崇使用screen,但是实际生产环境应用场景有限我就不展开了。这次实际遇到的问题主要是因为使用crontab调用了多个不同的nohup后台执行任务,然而代码逻辑中出现对相同文件的占用导致任务进程产生冲突使得system load负载达到600之高,需要kill任务时也不能盲目操作,需要杀掉的进程多且进程名与其它正常的进程名字有交集,需要合理运用pstree找到问题的源头。 Linux后台运行任务nohup结合&用法以及如何精准查找进程并kill后台任务实践 更新历史 2019年11月15日 - 初稿 阅读原文 - https://wsgzao.github.io/post... 扩展阅读 nohup介绍 用途:不挂断地运行命令。 语法:nohup Command [Arg …] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out
  • 即使使用sudo nohup,Amazon EC2 NodeJS服务器也会在2天后自行停止(Amazon EC2 NodeJS server stops itself after 2 days even after using sudo nohup)
    问题 我的应用程序在http://talkwithstranger.com/上运行,并且已将其部署在AWS EC2上。 我用这个命令 sudo nohup node index.js & 即使关闭终端并退出SSH,也要继续运行Node JS服务器。 但是,每次醒来两天后,我发现节点服务器本身会自动停止。 我通过使用检查了正在运行的进程 ps -ef 而且我的节点脚本不存在。 谷歌浏览器说无法找到站点DNS,因为NodeJS Express当然不能运行以提供我的html文件,但是为什么它会自行停止呢? 每两天一次导致服务器意外关闭的原因是什么? 我必须再次手动运行nohup才能再次运行它。 Nohup有时间到期吗? 回答1 您应该使用服务/流程管理器运行node.js。 您可以使用一些基本的东西,例如forever或有supervisord东西,但我实际上建议您看一下PM2。 它可以做很多事情-其中之一是它可以管理您的进程,确保其继续运行,在失败时重新启动,管理日志等。您还可以在重新启动服务器时使其自动启动。 与https://pm2.io结合使用时,它变得非常强大,因为它使您能够远程监视服务器的指标,例如CPU和内存,并查看是否发生异常,以及更多(例如甚至通过从git)。 但是,不幸的是,他们不再提供免费计划-他们的计划现在起价为每月79美元,这是一个遗憾。 但是不用担心
  • MySQL code causes PHP script to crash at popen/exec
    I have the following PHP 5.6.19 code on a Ubuntu 14.04 server. This code simply connects to a MySQL 5.6.28 database, waits a minute, launches another process of itself, then exits. Note: this is the full script, and it's purpose is to demonstrate the problem - it doesn't do anything useful. class DatabaseConnector { const DB_HOST = 'localhost'; const DB_NAME = 'database1'; const DB_USERNAME = 'root'; const DB_PASSWORD = 'password'; public static $db; public static function Init() { if (DatabaseConnector::$db === null) { DatabaseConnector::$db = new PDO('mysql:host=' . DatabaseConnector::DB