有人可以告诉我如何检查具有给定进程ID的unix进程是否在C程序中运行.我知道我可以调用system()并使用ps命令,但我不想调用system().
我想知道一个进程是否正在运行.我不想使用任何系统("")命令.是否有任何基于C的函数可以让您知道进程是否正在运行?
我想提供进程名称,并想知道它是否正在运行.
谢谢,
前段时间我需要编写c ++代码来杀死某些进程.在我的主程序中,我使用系统("...")运行大型CAE系统包,输入时使用不同的文件名字符串.CAE软件创建许多进程,包含进程名称字符串filename).一些CAE流程的工作时间 > MAX_TIME,比我更需要关闭它们:
//filename contains part of CAE-process name
string s="/bin/kill -9 `ps aux | grep "+filename+" | awk {'print $2'}`";
system(s.c_str());
Run Code Online (Sandbox Code Playgroud)
输出是:
Usage:
kill pid ... Send SIGTERM to every process listed.
kill signal pid ... Send a signal to every process listed.
kill -s signal pid ... Send a signal to every process listed.
kill -l List all signal names.
kill -L List all signal names in a nice table.
kill -l signal …Run Code Online (Sandbox Code Playgroud)