输入执行Nohup命令

输入执行Nohup命令

在 UNIX 中,我想使用 nohup 运行一个进程。但是,此过程有时会在出现提示时等待,我必须输入yesno等待它继续。到目前为止,在 UNIX 中我一直在做以下事情:

nohup myprocess <<EOF
y
EOF

因此,我使用 nohup 启动进程“myprocess”,并使用“y”通过管道输入文件,然后关闭该文件。上面的行实际上是三个单独的命令 - 即我在 UNIX 中的第一行按 Enter 键,然后出现提示,输入“y”,然后按 Enter 键,最后输入“EOF”并再次按回车键。所以这很完美,但我的问题如下。

我现在想在 Perl 中执行此命令,但我不确定如何执行此命令,因为它超过三行。我不知道以下是否有效:

my $startprocess = `nohup myprocess <<EOF &
y
EOF
`

答案1

如果您只想将单个写入y进程的标准输入,您可以这样做:

(echo y | nohup myprocess) &

如果您想继续y为出现的每个提示进行写入,则 coreutil 的yes存在正是为了这个目的——它将继续将您告诉它的任何内容写入标准输出。它的默认值是输出“y”,所以你可以:

(yes | nohup myprocess) &

但如果您需要其他东西,您可以将其作为参数传递

相关内容