在与终端分离的后台运行可执行文件,但带有参数

在与终端分离的后台运行可执行文件,但带有参数

我可以在后台运行可执行文件并使用以下命令将其与终端分离:

$ nohup ./executable &

或者

$ ./executable &   
$ disown

但如果我向可执行文件发送参数,则没有任何效果:

$ nohup ./executable argument &

或者

$ ./executable argument &
$ disown

我尝试将其与 .sh 字符串和管道语法结合使用,但它也不起作用:

$ nohup ./executable <<<$'argument' &

或者

$ ./executable <<<$'argument' &
$ disown

或者

$ nohup echo -e "argument" | ./executable &

或者

$ echo -e "argument" | ./executable &
$ disown

编辑:“./executable”程序接受任意数量的参数,例如“./executable arg1 arg2”等...我认为问题是“&”被“./executable”作为参数吸收。另外,如果有帮助的话,它是用 Go 编写的。

答案1

经过更多测试,结果证明两者都$ nohup ./executable &适用$ ./executable & $ disown于此目的。我只是在运行后向下滚动很多次top才能看到程序正在运行。

作为旁注,$ nohup ./executable &如果您的程序立即不间断地开始记录会更好,因为运行$ ./executable &然后$ disown在程序记录时似乎有点奇怪。

相关内容