Bash exec将输出写入logfile并将PID写入单独的文件

时间:2018-05-30 19:05:03

标签: bash file logging exec pid

我在理解BASH时遇到了问题,将exec命令的输出写入日志文件&将PID写入单独的文件。 那是我到目前为止所做的:

exec ./node -connect-manager -manager-address $MANAGER_IP:5998 -manager-web $MANAGER_IP:8000 >> /var/log/skywirenode.log >> echo $$ > /home/odrod420/skywireScript/node.pid &

有没有人知道我在想什么?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您无法在一个语句中对stdout进行多次重定向。 echo语句应作为单独的语句完成:

echo $$ > /home/odrod420/skywireScript/node.pid
exec ./node -connect-manager -manager-address $MANAGER_IP:5998 -manager-web $MANAGER_IP:8000 >> /var/log/skywirenode.log 2>&1

如果你想在后台运行node并将其PID保存在文件中,你不应该使用exec,你应该在命令之后放置&,并且echo $!到文件:

./node -connect-manager -manager-address $MANAGER_IP:5998 -manager-web $MANAGER_IP:8000 >> /var/log/skywirenode.log 2>&1 &
echo $! > /home/odrod420/skywireScript/node.pid