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

Bash exec write output to logfile and write PID to seperate file

我在理解 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 &

有人知道我在想什么吗?

提前致谢!

您不能在单个语句中对 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,你应该把&放在后面命令,并将 $! 回显到文件:

./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