Command- ps –ef
Here we can use “grep” option to find out any particular process,
Example-
To find out running processes for apache,
root@sunpstsrv01# ps -ef | grep http
webservd 587 584 0 Sep 01 ? 0:00 /opt/csw/apache2/sbin/httpd -k start
root 584 1 0 Sep 01 ? 0:47 /opt/csw/apache2/sbin/httpd -k start
nobody 1498 1494 0 Sep 01 ? 0:00 /usr/local/apache2/bin/httpd -k start
webservd 586 584 0 Sep 01 ? 0:00 /opt/csw/apache2/sbin/httpd -k start
webservd 588 584 0 Sep 01 ? 0:00 /opt/csw/apache2/sbin/httpd -k start
nobody 8860 1494 0 Sep 02 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 1499 1494 0 Sep 01 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 8861 1494 0 Sep 02 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 1500 1494 0 Sep 01 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 1501 1494 0 Sep 01 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 1502 1494 0 Sep 01 ? 0:00 /usr/local/apache2/bin/httpd -k start
nobody 2832 1494 0 Sep 01 ? 0:00 /usr/local/apache2/bin/httpd -k start
webservd 6031 584 0 Sep 01 ? 0:00 /opt/csw/apache2/sbin/httpd -k start
To find out parent & child processes in unix.
Command- ptree- To print process tree
Example-
root@sunpstsrv01# ptree 8860
1494 /usr/local/apache2/bin/httpd -k start
8860 /usr/local/apache2/bin/httpd -k start
Here in above example we took any process id “8860” and used ptree command, we can see pid “1494” is a parent process for child process “8860”
Using parent PID we can get all running child processes id’s.
Example-
root@sunpstsrv01# ptree 1494
1494 /usr/local/apache2/bin/httpd -k start
1498 /usr/local/apache2/bin/httpd -k start
1499 /usr/local/apache2/bin/httpd -k start
1500 /usr/local/apache2/bin/httpd -k start
1501 /usr/local/apache2/bin/httpd -k start
1502 /usr/local/apache2/bin/httpd -k start
2832 /usr/local/apache2/bin/httpd -k start
8860 /usr/local/apache2/bin/httpd -k start
8861 /usr/local/apache2/bin/httpd -k start
8862 /usr/local/apache2/bin/httpd -k start
Here we can see all child PID’s associated with Parent process ID “1494”
To kill Parent & child process,
Command- kill -9 ‘PID’
Example-
To kill apache process,
root@sunpstsrv01# kill -9 1494
Here we are killing parent process running for apache.
Most of the time if we killed parent process then child process associated with that gets killed.
We can confirm that by using “ps –ef “ command.
Zombie process in Unix
When a process ends, all of the memory and resources associated with it are de-allocated so they can be used by other processes. However, the process entry in the process table remains. The parent is sent a SIGCHLD signal indicating that a child has died; the handler for this signal will typically execute the wait system call, which reads the exit status and removes the zombie.
Zombies can be identified in the output from the UNIX ps command by the presence of a “Z” in the STAT column.
Example-
ps -el | grep 'Z'
With a normal ps -el command you see an output with in the second colum the state of the process. Here are some states:
S : sleeping
R : running
D : waiting (over het algemeen voor IO)
T : gestopt (suspended) of getrasseerd
Z : zombie (defunct)
The output under this text is an example. We can see that dovecot-auth is the zombie.
[root@s324 /]# ps -el | grep 'Z'
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 Z 0 1213 589 0 75 0 - 0 funct> ? 00:00:00 dovecot-auth
Here 2nd column “Z” indicates zombie process.
Most of the time zombie process can be killed by “kill -9 ‘Zombie PID’” but still if that zombie process is not being killed then we might need to restart that application related to process.
No comments:
Post a Comment