为了远程启动程序,记录其输出并立即查看该日志,我正在使用此脚本:
nohup mycommand 2>&1 | tee -a server.log &
现在,我想在一个文件中存储新启动的mycommand的pid(其名称非常通用,我不能只使用pgrep,因为存在冲突风险)。
如果我只是添加echo $! > mycommand.pid
,我会获得tee
的pid。
如何可靠地将mycommand
的pid写入文件?
顺便说一句,为什么这不能给出正确的pid?
( nohup mycommand 2>&1 ; echo $! > mycommand.pid ) | tee -a server.log &
答案 0 :(得分:1)
好的,这个简单的变体有效:
( nohup mycommand 2>&1 & echo $! > mycommand.pid ) | tee -a server.log &
我不确定为什么;
无法正常工作以及为什么我必须使用&
。