LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Getting pid of a process!! (https://www.linuxquestions.org/questions/programming-9/getting-pid-of-a-process-360124/)

vishamr2000 09-04-2005 12:47 PM

Getting pid of a process!!
 
Hi to all,

I would like to know if there's a way to get the pid of a process by using it's name. Also, how can I know of the processes that are running and their pids?

Warm regards,
Visham

UnderDark 09-04-2005 12:53 PM

Code:

ps ax | grep [process name]
will search running running programs for the [process name].

the first number on the left is the pid

Slackwise 09-04-2005 04:09 PM

On Slackware, there is a /sbin/pidof which returns the pid of a program.

vishamr2000 09-05-2005 01:01 AM

Hi,

many thx for the reply...

But what command do I use for getting the pid of a process, which i know by name, in a C program?

Warm regards,
Visham

jlliagre 09-05-2005 01:38 AM

Here's one way, a rewriting of Solaris pgrep/pkill commands to Linux:
http://cvs.sourceforge.net/viewcvs.p...19&view=markup

vishamr2000 09-05-2005 08:18 AM

Hi,

I found sth called pidof...it's a shell script command that returns the pid of a process when you know its name.

So in order to use it this command in a C program, we can use the system command:

void main()
{
...
system("pidof -s name_of_process");
...
}

Thx to all for ur input..

Warm regards,
Visham

jlliagre 09-05-2005 09:10 AM

Calling a shell script from a C program instead of using the C APIs defeats some or all of the interest of writing a C program vs a shell script.

Also, if you still want to use pidof instead of what I sent you (pgrep C source code), you'd rather use popen() instead of system() to get pidof output.

vishamr2000 09-06-2005 05:20 AM

Hi,

I did look at the pgrep.c file...but i'm araid i don't know hw to include it in my code..i'm actualy modifying iptables kernel code, where I need to find the pid of another process. I found it easier to write just one line in the existing code rather than having to paste the source code of pgrep.c. i'm using RH9 by the way.

Can you suggest me a way of how to use prep.c while causing minimal intrusion in the existing iptables kernel code? I can't use makefiles..

Warm regards,
Visham

vishamr2000 09-06-2005 05:25 AM

Hi,

I did look at the pgrep.c file...but i'm araid i don't know hw to include it in my code..i'm actualy modifying iptables kernel code, where I need to find the pid of another process. I found it easier to write just one line in the existing code rather than having to paste the source code of pgrep.c. i'm using RH9 by the way.

Can you suggest me a way of how to use prep.c while causing minimal intrusion in the existing iptables kernel code? I can't use makefiles..


Also, can you tell me why you suggest the use of popen(). CAn you give me an example of how to use it?

Warm regards,
Visham

jlliagre 09-06-2005 09:21 AM

Are you really wanting to call a shell script from kernel code ???

This is close to impossible, and reusing pgrep code in such a situation is at least challenging here too.

Kernel code cannot make use of system calls or libc, although part of libc can be implemented in the kernel itself.

bigearsbilly 09-06-2005 09:47 AM

open-heart surgery using a chainsaw
;)

Pratik H Pandya 09-06-2005 12:17 PM

use getpidbyname()
 
Hi
i'm also new to linux but if you are using c and want to know pid of a process then you can use system call getpidbyname().

jlliagre 09-06-2005 02:53 PM

I doubt any operating system provides a "getpidbyname()" system call.

vishamr2000 09-07-2005 04:22 AM

Hi to all,

I'm trying to call a .c program (Prog1.c) from another .c program (Prog2.c). Prog1.c is actually part of the iptables kernel code. I'm only modifying the file. I'll need to recompile the kernel. Prog2.c is a userspace program that i will write entirely. Prog1.c will send a signal to Prog2.c every time a packet passes through the code of Prog1.c. But in order to send the signal to Prog2.c, Prog1.c needs to know the pid of Prog2.c and then send it.

Do you think it' the best way to do so...

Warm regards,
Visham

jlliagre 09-07-2005 06:11 AM

Quote:

Prog1.c will send a signal to Prog2.c every time a packet passes through the code of Prog1.c.
How do you plan to send a signal to Prog2 from kernel code ?

Hint: http://www.kernelnewbies.org/faq/index.php3#library


All times are GMT -5. The time now is 09:51 PM.