社区
C++ 语言
帖子详情
LINUX下C++开发中遇到的问题
llf_hust
2005-08-18 10:20:43
在LINUX下面如何编程知道另一个程序是不是在运行,如果该程序没有运行则启动该程序让它运行。老板说可以用PID实现,但我不知道具体怎么实现。哪位哪手给个提示呀???
...全文
265
16
打赏
收藏
LINUX下C++开发中遇到的问题
在LINUX下面如何编程知道另一个程序是不是在运行,如果该程序没有运行则启动该程序让它运行。老板说可以用PID实现,但我不知道具体怎么实现。哪位哪手给个提示呀???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jagen在路上
2005-08-21
打赏
举报
回复
当你进入/proc目录时,你会发现很多以10进制数为标题的目录,它们都是记录系统中正在运行的每个用户级进程的信息,数字表示进程号(pid)。/proc/self是当前进程目录的符号连接。这些目录下存放着许多有关进程信息的文件,比如status文件包含许多进程控制块(PCB)中的进程状态信息,用cat命令显示如下:
#cat /proc/self/status
Name: cat
State: R (running)
Pid: 8901
PPid: 8779
TracerPid 0
Uid: 0 0 0 0
Gid: 0 0 0 0
PDSize: 256
Groups: 0 1 2 3 4 6 10
VmSize: 1648 kB
VmLck: 0 kB
VmRSS: 508 kB
VmData: 36 kB
VmStk: 20 kB
VmExe: 16 kB
VmLib: 1312 kB
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigLgn: 8000000000000000
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
在每个目录下,进程信息是类似的。/proc文件系统中进程相关目录的内容如下:
cmdline 该进程的命令行参数
cwd 进程运行的当前路径的符号连接
environ 该进程运行的环境变量
exe 该进程相关的程序文件的符号连接
fd 包含了所有进程中使用的文件描述符的目录
maps 可执行程序或者库文件对应的内存映像
mem 该进程使用的内存
root 该进程所有者的家(home)目录
stat 进程状态
statm 进程的内存状态
status 用易读的方式表示进程状态
llf_hust
2005-08-20
打赏
举报
回复
up
zjyu88
2005-08-19
打赏
举报
回复
恩啊...
运用PROC才是硬道理..呵...
而且你要运行一个程序最要不用SYSTEM()启动,,因为效率低,它是先启动终端的,,
建议先创建一个进程再使用EXEC函数系列去代替这新进程..
bugebear3
2005-08-19
打赏
举报
回复
同意楼上的,PROC里有系统运行的所有进程的信息
llf_hust
2005-08-19
打赏
举报
回复
我还是不知道在编程的过程中具体怎么样应用呀????
Jagen在路上
2005-08-19
打赏
举报
回复
proc就是proc目录阿,多简单,里面的文件你可以读出内容的。
zhousqy
2005-08-19
打赏
举报
回复
能不能在proc里找到点运行中的程序的线索?
jsjjms
2005-08-19
打赏
举报
回复
linux 下都忘光了,,,,,,学习...
cym64039
2005-08-19
打赏
举报
回复
写个shell不就可以了,再linux自带crontab每分钟运行一次
#!/bin/sh
demo=`ps -ef | grep 进程名 |grep -v grep | wc -l`
if [ $demo -lt 1 ]
then
cd path
运行程序
fi
SeaKing911
2005-08-19
打赏
举报
回复
怎么运用proc呢?能不能详细点啊?
希望之晨
2005-08-19
打赏
举报
回复
用ps或者在/proc下去找都可是实现不过不是好办法
还有就是用kill(。。。。。。)函数给进程号,如果知道进程号的话。
SeaKing911
2005-08-19
打赏
举报
回复
如果你能确定你要实现守护的程序的执行方法和路径的话,你可以放入一个配置文件中,然后定时每个1分钟或者多少时间去ps -ef|grep ***一下,判断返回的结果。如果有就不用管了,如果没有就system(***)一下了。大概是这样的。但是,这种方法不能很好的处理僵死进程的情况,如果各位有什么好办法,指点一下啊。
various
2005-08-18
打赏
举报
回复
或者这样 ,就是生成日志文件。读日志来判断是否有程序在运行
cenlmmx
2005-08-18
打赏
举报
回复
一些命令记不得了
cenlmmx
2005-08-18
打赏
举报
回复
能够这样:
char* call = "ps -ef|grep XXX >> 1.log"
excev(...,call,....)
调用,再来分析1.log
一些命令记的得了,就这个思路.
llf_hust
2005-08-18
打赏
举报
回复
up
vscode配置
Linux
C++
开发
环境
本教程的对象主要是针对会c语言的基本使用,并且想在windows平台下进行
Linux
C++
开发
的同学。全过程简单来说就是通过vscode远程连接
linux
进行
开发
,并通过cmake来管理项目。个人感觉这算是目前比较好的方案了,...
linux
下使用vscode搭建
C++
开发
环境
linux
下使用vscode搭建
C++
开发
环境 最近在
linux
上跑一些开源库做学习用, 顺手就搭了一下vscode的
c++
开发
环境, 这里分享一下vscode进行
C++
开发
的基本环境结构. 首先是编辑器, vscode直接官网下载的, 后期可以用 apt...
Linux
和Windows下
C++
代码编译的一些基本区别
从Windows Visual Studio
开发
迁移到
Linux
GCC
开发
的人们,经常会
遇到
一些奇怪的
问题
,因为在
Linux
上面的一些行为和Windows不同,当人们习惯了Windows的行为以后,往往不会想到这些不同的地方。 在这里,我把
Linux
下...
linux
下使用cmake和vscode进行C/
C++
开发
linux
,camek,vscode,g++参数,shell命令入门,
Windows下
开发
、调试
Linux
C/
C++
程序
据我所知,
开发
Linux
C/
C++
程序的一般方式,如下: ²使用SecureCRT+UltraEdit(FTP)工具远程编辑、编译(Makefile+gcc)、调试(gdb)
Linux
程序。 ²Windows 上装
Linux
虚拟机,在虚拟机上使用Vim、gcc、gdb来...
C++ 语言
64,648
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章