Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用以下lsof命令:
lsof
lsof -iTCP -a -sTCP:^LISTEN -a -p <pid>
如果有一些输出,则此命令返回退出代码,0但如果没有输出,则退出代码为1。
0
1
echo $?
谁能解释为什么会这样?有没有办法避免它?
这是预期的行为:0如果发现了什么,你就会得到。
来自man lsof:
man lsof
诊断 错误由标准错误文件上的消息标识。 如果检测到任何错误,包括未能找到命令名称、文件名、Internet 地址或文件、登录名、NFS 文件、PID、PGID 或要求列出的 UID,Lsof 将返回一 (1)。如果指定了 -V 选项,lsof 将指示它未能列出的搜索项。 如果未检测到错误并且能够列出有关所有指定搜索参数的一些信息,则返回零 (0)。
诊断
错误由标准错误文件上的消息标识。
如果检测到任何错误,包括未能找到命令名称、文件名、Internet 地址或文件、登录名、NFS 文件、PID、PGID 或要求列出的 UID,Lsof 将返回一 (1)。如果指定了 -V 选项,lsof 将指示它未能列出的搜索项。
如果未检测到错误并且能够列出有关所有指定搜索参数的一些信息,则返回零 (0)。