我需要使用 运行一个应用程序krenew
,但该应用程序还需要通过命令行接收参数,并且我需要将其输出发送到文件。从文档,看起来这应该可以解决问题:
krenew -t -- sh -c 'compute-job > /afs/local/data/output'
但不幸的是,当我运行以下命令时:
krenew -s -- sh -c './my_app config.xml > results/test.txt &'
应用程序在一段时间后就死机了,我从输出中可以看到ps aux
没有krenew
与一起运行my_app
。我不确定参数的-t
作用是什么,据我所知,如果我运行krenew -s ./my_app
,它可以正常工作。
我希望有人可以澄清这一点。
更新:如果我从命令中删除“&”字符(这样它就不会与控制台分离,它就可以正常工作,所以我决定在屏幕标签。虽然这不是最好的解决方案,但它能完成工作。
答案1
您不需要在屏幕会话中运行它,而应该能够使用:
krenew -t -- sh -c './my_app config.xml > results/test.txt' &
请注意,从 shell 中&
分离,但应用程序不会从生成的 中分离。该参数会随 Kerberos 票证一起获取 AFS 令牌。只有当您的命令需要访问 AFS 文件系统时,您才需要它。krenew
sh
-t