无法在终端中获取正在运行的进程的PID

无法在终端中获取正在运行的进程的PID

我收到的错误是,当尝试运行项目时,我收到错误消息,指出端口已被占用。所以我运行命令,$ lsof -i :<PORT>问题是运行此命令后它会以 error-1 退出,所以我试图找到一种方法可以将此错误回显到终端(iterm2),以便我可以更好地解决此问题。因为在运行各种命令后我发现这里它不起作用。我输入命令,收到错误 1,然后再次运行该服务并收到相同的错误,表示该端口已在使用中

答案1

要成功运行此类命令,最好以root用户身份执行:

sudo lsof -i :<PORT>

您将需要无密码用户,sudo或者您应该输入密码(效果sudo
要保留错误以供将来操作,您可以尝试以下命令:

ERROR1=$(sudo lsof -i :<PORT> 2>&1 1>&2)
echo $ERROR1

这会将 STDERR 重定向到 STDOUT 的处理程序,然后将 STDOUT 重定向到 STDERR 处理程序(切换位置),因此将 STDERR 保存在变量中,通常会在其中打印错误

相关内容