2

在 Unix 中,我有一个想使用 nohup 运行的进程。然而,这个过程会在某个时候等待我必须输入的提示yesno继续。到目前为止,在 Unix 中我一直在做以下事情

nohup myprocess <<EOF
y
EOF

所以我使用 nohup 启动进程 'myprocess' 并使用 'y' 管道在文件中,然后关闭文件。上面的行实际上是三个单独的命令 - 即我在 UNIX 的第一行按回车键,然后我得到一个提示,我输入“y”,然后按回车键,最后输入“EOF”并再次按回车键。

我想知道在 Perl 中执行此命令,但我不确定如何执行此命令,因为它超过三行。不知道下面的能不能用。。。。

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

请帮忙 - 谢谢!

4

2 回答 2

5

我认为您的建议将按原样进行。如果没有,请尝试用管道替换重定向:

my $startprocess = `(echo "y" | nohup myprocess) &`;

另外,根据您为什么这样做nohup,请使用以下纯 Perl 守护程序方法Proc::Daemon查看:如何在 linux 中将 Perl 脚本作为系统守护程序运行?

于 2010-10-01T01:15:17.733 回答
2

Expect也可以用于交互式程序。

于 2010-10-01T01:29:48.657 回答