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