Home > Article > Operation and Maintenance > How to use pid to check whether a process exists in linux
In Linux, you can use the kill command to check whether the process exists based on the pid. "kill -0" will not send a signal to the process, but will perform error checking. If the process exists, the returned result is 0. If The process does not exist, the returned result is 1, and the syntax is "kill -0 pid".
#The operating environment of this tutorial: linux7.3 system, Dell G3 computer.
Suppose we want to monitor whether a process is alive and check it every minute. Using the above method, we need to run the ps command and do it once every minute. grep regular search. This overhead seems to be nothing on the server, but what if we want to monitor dozens or hundreds of such processes on the same node at the same time? Therefore, we need to explore some better methods from a performance perspective.
For daemon processes, they usually have their own pid or lock files. We can check whether these files exist to determine whether the process exists. However, under some abnormal circumstances, the process where the pid file exists does not exist. Therefore, you cannot rely on the process's pid file to detect whether the process is alive.
A reliable method is to use "kill -0 pid", kill -0 will not send any signal to the process, but will perform error checking. The command returns 0 if the process exists and 1 if it does not exist.
However, this method can only be used for ordinary users to check their own processes, because sending signals to other users' processes will cause an error due to lack of permission and return The value is also 1.
[sw@gentoo ~]$ kill 2993 -bash: kill: (2993) - Operation not permitted [sw@gentoo ~]$ echo $? 1 [sw@gentoo ~]$
Of course, if you use a privileged user to execute the kill command, there will be no permission problem.
On the other hand, we know that the kernel will export the process information running in the system through the /proc virtual file system. Each process has a /proc/
Related recommendations: "Linux Video Tutorial"
The above is the detailed content of How to use pid to check whether a process exists in linux. For more information, please follow other related articles on the PHP Chinese website!