如何判断自己的进程是否正常启动

Valima 2009-12-04 10:54:42
在linux下,启动了一个自己的进程(知道进程名),如何通过脚本来判断该进程是否正常启动并且是自己的进程而不是同名的其他进程?谢谢!
...全文
337 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Valima 2009-12-09
  • 打赏
  • 举报
回复
应用程序是经常升级的,而启动应用程序的shell不能升级,所以无法进行MD5之类的校验。
Valima 2009-12-09
  • 打赏
  • 举报
回复
有人说:“你可以给你想查的那个进程发一个消息,这样做的话比较准确。
kill(process_id,用户自定义消息)看看它的return值,在进程中加入对这个消息的捕获。不要处理它就可以了”
我觉得这个方法挺好,可是我测试了,不管发送什么信号,kill返回的值都是0,不管进程是否捕获信号。
Valima 2009-12-08
  • 打赏
  • 举报
回复
up
shuangbi 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 valima 的回复:]
不好意思,可能是我没有表达清楚,我现在重新描述一下我的需求: 我在系统启动时自动运行了一个应用程序app,由于这个app有可能被删除或更改,所以我在启动操作系统以后要判断我的app是否正常启动(判断是否被删除),如果正常启动了,是否我自己的应用程序(判断 是否被更改替换)?  我不知道有没有说清楚
[/Quote]
启动前可以对文件进行一些校验吧,md5之类?开应用程序文件是否修改过?
Valima 2009-12-07
  • 打赏
  • 举报
回复
如果被删除了或替换了要从一个只读区域重新拷贝并启动
Valima 2009-12-07
  • 打赏
  • 举报
回复
不好意思,可能是我没有表达清楚,我现在重新描述一下我的需求: 我在系统启动时自动运行了一个应用程序app,由于这个app有可能被删除或更改,所以我在启动操作系统以后要判断我的app是否正常启动(判断是否被删除),如果正常启动了,是否我自己的应用程序(判断 是否被更改替换)? 我不知道有没有说清楚
QX_永不言棄 2009-12-05
  • 打赏
  • 举报
回复
好难啊!
deep_pro 2009-12-05
  • 打赏
  • 举报
回复
别人替换你的app,是在你的app运行前替换,还是动态替换?

再说,既然是你的app,你跟它设计一个别人不知道的暗号不就得了,
你问 地振高冈,一派西山千古秀
他就得答 门朝大海,三合河水万年流
不然干掉就完事了呗

信号量是好,不过貌似只能脚本到app的单向,你要app回复你,app仅靠一个信号量还不知道回谁呢
可以占用一个用户自定义信号量,shell用kill发,app收到后写一个文件表示回复,没有回复的一律咔嚓
deep_pro 2009-12-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 valima 的回复:]
这样怎么知道是我自己的应用程序app呢,不是被别人的app呢?担心我的app被别人替换掉,通过信号量什么的可以吗?因为我判断不是我的app,我要kill掉,重新从别处copy我的app,重新启动。
[/Quote]

lz什么意思,表达不清
playmud 2009-12-05
  • 打赏
  • 举报
回复
linux有函数可以监控文件是否变化,可以试一下。
看着奢扣 2009-12-04
  • 打赏
  • 举报
回复
ps -xelf | grep "全路径"
Wenxy1 2009-12-04
  • 打赏
  • 举报
回复
ps -xelf | grep "全路径"

这样更好。
pottichu 2009-12-04
  • 打赏
  • 举报
回复
ps -x | grep "全路径"
Valima 2009-12-04
  • 打赏
  • 举报
回复
这样怎么知道是我自己的应用程序app呢,不是被别人的app呢?担心我的app被别人替换掉,通过信号量什么的可以吗?因为我判断不是我的app,我要kill掉,重新从别处copy我的app,重新启动。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧