如何根据PID号显示完整用户名?现有方法存在截断或无效问题
解决PID对应完整用户名显示问题
问题1:用户名被截断
你用ps -u -p ${PID}获取用户名时出现截断,是因为ps默认的用户名输出宽度有限。可以直接用ps的-o参数指定足够宽的用户名显示长度,避免截断:
PID=12345 # 指定user字段宽度为30(可根据实际用户名长度调整),--no-headers去掉表头 PID_USER=$(ps -p ${PID} -o user:30 --no-headers) # 去除可能的首尾空格 PID_USER=$(echo "${PID_USER}" | xargs) echo "${PID_USER}"
这样就能完整显示SystemUser_Farid这类长用户名。
问题2:ps axo加-p参数无输出
你的命令参数顺序错误,-p(指定PID)需要放在-o(指定输出格式)之前,正确的命令格式是:
PID=12345 ps -p ${PID} -o user:20,pid
或者保留axo的话,把-p放在最前面:
ps -p ${PID} axo user:20,pid
这样就能正确返回指定PID的用户和进程ID信息。
内容的提问来源于stack exchange,提问作者Farid Arshad
相关产品推荐
相关产品推荐

