我想在后台运行我的脚本,然后编写它的 pid 文件。我正在使用 nohup 来执行此操作。
这是我想出来的,
nohup ./myprogram.sh > /dev/null 2>&1 & && echo $! > run.pid
但这会产生语法错误。
以下没有给出语法错误,但问题是 echo $!由于 nohup 在子 shell 中运行,因此没有写入正确的 pid
(nohup ./myprogram.sh > /dev/null 2>&1 &) && echo $! > run.pid
任何解决方案,如果我想要一个单行语句来实现这一点?
最佳答案
在将脚本置于后台的重定向之后,您已经有了一个与号。因此,您只需要在该 & 号之后键入所需的命令,而不是任何其他前缀:
nohup ./myprogram.sh > /dev/null 2>&1 & echo $! > run.pid
https://stackoverflow.com/questions/20254155/