我在理解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 &
有没有人知道我在想什么?
提前致谢!
答案 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