设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
有没有办法从window id获得相应程序的pid
返回列表
查看:
1308
|
回复:
7
有没有办法从window id获得相应程序的pid
[复制链接]
lastart
lastart
当前离线
积分
913
IP卡
狗仔卡
发表于 2006-10-15 22:56:53
|
显示全部楼层
|
阅读模式
google了一下, 似乎是一个很麻烦的问题.
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
luke_guo
luke_guo
当前离线
积分
121
IP卡
狗仔卡
发表于 2006-10-23 16:06:58
|
显示全部楼层
说的明白一点。最好有例子。
回复
支持
反对
使用道具
举报
显身卡
lastart
lastart
当前离线
积分
913
IP卡
狗仔卡
楼主
|
发表于 2006-10-23 16:34:27
|
显示全部楼层
window id 是每个图形窗口唯一的识别,
pid 是每个进程唯一的识别.
对有图形界面的窗口它的win id应该跟它的pid是相对应的,
xkill杀一个图形窗口它相应的process会被结束,
kill 杀一个有图形窗口的进程, 它的图形窗口就会消失.
问题是
怎么知道某个进程是管哪个窗口的, 或者某个窗口是哪个进程管的.
这样说够清楚了吧??
回复
支持
反对
使用道具
举报
显身卡
hellwolf
hellwolf
当前离线
积分
1092
IP卡
狗仔卡
发表于 2006-10-23 21:56:13
|
显示全部楼层
似乎有困难,别忘了X是跨网络的,设想一个远程程序在你的X服务器上显示了一个窗口,他的pid对你还有意义么?
回复
支持
反对
使用道具
举报
显身卡
lastart
lastart
当前离线
积分
913
IP卡
狗仔卡
楼主
|
发表于 2006-10-24 00:25:24
|
显示全部楼层
这确实是个问题, 这两个本来就不是一个层面的东西.
但其实, 他的pid还是有意义的,
程序总不会不明不白连上了, 比如程序挂了, 我可以连回主机kill了它
我觉得以后窗口可能会把这些信息附加上去吧, 呵呵.
回复
支持
反对
使用道具
举报
显身卡
yongjian
yongjian
当前离线
积分
2576
IP卡
狗仔卡
发表于 2006-10-24 02:15:51
|
显示全部楼层
ps auxef | grep gnome-terminal
yongjian 28695 0.1 1.6 17464 8416 pts/1 S+ Oct20 7:17 | \_ irssi -n i3d SSH_AGENT_PID=16228 SHELL=/usr/bin/
zsh HISTSIZE=10000 HISTFILESIZE=5000 USER=yongjian GSM_NO_GRAB_SERVER=1 SSH_AUTH_SOCK=/tmp/ssh-lwbWS16117/agent.16117 PAT
H=/usr/sbin:/usr/local/sbin:/sbin:/opt/e17/bin:/opt/e17/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
:/usr/bin/X11:/usr/games DESKTOP_SESSION=xfce4 GDM_XSERVER_LOCATION=local PWD=/home/yongjian XMODIFIERS=@im=fcitx LANG=en
_US.UTF-8 GDMSESSION=xfce4 SHLVL=2 HOME=/home/yongjian LANGUAGE=en_US:en_GB:en:zh_CN G_FILENAME_ENCODING=@UTF-8 LOGNAME=y
ongjian LC_CTYPE=zh_CN.UTF-8 DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ff7x4Aw5rt,guid=adc3374597e471e62605fbbdf6d
edf00 XDG_DATA_DIRS=/etc/xdg/xubuntu:/usr/share:/usr/local/share:/usr/share DISPLAY=:0.0 GTK_IM_MODULE=fcitx XAUTHORITY=/
home/yongjian/.Xauthority _=/usr/bin/irssi SESSION_MANAGER=local/ubuntumoblie:/tmp/.ICE-unix/16261 TERM=xterm COLORTERM=
gnome-terminal [b][color="Red"]WINDOWID=23068820[/color][/b] OLDPWD=/home/yongjian EDITOR=vi
复制代码
See that env variable...
回复
支持
反对
使用道具
举报
显身卡
lastart
lastart
当前离线
积分
913
IP卡
狗仔卡
楼主
|
发表于 2006-11-4 23:06:09
|
显示全部楼层
你这个不对, 看到的是它的父进程的windowid, 而不是它自己的.
回复
支持
反对
使用道具
举报
显身卡
yongjian
yongjian
当前离线
积分
2576
IP卡
狗仔卡
发表于 2006-11-6 14:46:21
|
显示全部楼层
terminal下的程序继承了虚拟终端的windowid,比如我上面的例子。所以都一样。只是如果不是终端程序,就麻烦了。Xclient直接通过socket和X server连接,pid和windowid中间的联系似乎都藏在了socket中,而不是环境变量里。比如点击打开,或是远程连接X服务器。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
BSD 讨论专题
Linux 程序设计专题讨论
Mandriva Linux
Linux 输入开发与研究
Debian Linux
LFS(LinuxfromScratch)
Linux 基础讨论区(新手速成)
Redhat/Fedora/CentOS Linux
Archlinux讨论区
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表