Quantcast
Channel: Sameh Attia
Viewing all articles
Browse latest Browse all 1407

How to Manage Processes in Linux

$
0
0
https://www.rosehosting.com/blog/how-to-manage-processes-in-linux

How to Manage Processes in Linux
We’ll show you, How to Manage Processes in Linux. A process is the abstraction used by the Linux operating system to represent a running program. Each process in Linux consists of an address space and a set of data structures within the server kernel. The address space contains the code and libraries that the process is executing, the process variables, its stacks, and different additional information needed by the kernel while the process is running.

PID is a unique ID number named and it is assigned by the kernel to every process. PIDs are assigned in order as processes are created.
UID is a user identification number of the person who created it.
The EUID is the ‘effective’ user ID, used to determine what resources and files a process has permission to access at any given moment. In general, the UID and EUID are the same, except for the programs that are setuid.
The GID is the group identification number of a process. The EGID is related to the GID in the same way that the EUID is related to the UID. In short, a process can be a member of many groups at once.
Listed below are some basic commands to manage processes in Linux:

1. ps Command to Manage Processes in Linux

It is one of the essential Linux system administrator commands used for monitoring processes. While different versions of ps differ in their arguments and display, they all deliver the same information. The output of the ps command can show the PID, UID, priority, and control terminal of processes. It also gives information about how much CPU time it has consumed, how much memory a process is using, and its current status (state).
Process states codes:
R– running – the process is running/can be executed.
D– uninterruptible sleep
S– interruptible sleep – the process is waiting for some event to complete
T– Traced or stopped
Z– Zombie – defunct process, a terminated process but still hanging around in kernel process table because the parent of this process has still not fetched the termination status of this process.
Here’s an example of ps aux output on a CentOS 7 VPS with cPanel installed on it:
 # ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 129180 3584 ? Ss Mar16 1:44 init -z
root 2 0.0 0.0 0 0 ? S Mar16 0:00 [kthreadd/2172]
root 3 0.0 0.0 0 0 ? S Mar16 0:00 [khelper/2172]
root 59 0.0 0.4 36920 8508 ? Ss Mar16 0:09 /usr/lib/systemd/systemd-journald
root 60 0.0 0.0 41880 1680 ? Ss Mar16 0:00 /usr/lib/systemd/systemd-udevd
dbus 96 0.0 0.0 24348 1712 ? Ss Mar16 0:07 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root 97 0.0 0.1 148184 3168 ? Ss Mar16 0:00 pure-ftpd (SERVER)
mysql 99 0.0 0.0 113204 1588 ? Ss Mar16 0:00 /bin/sh /usr/bin/mysqld_safe
root 103 0.0 0.0 22232 1576 ? Ss Mar16 0:03 /usr/lib/systemd/systemd-logind
root 108 0.0 0.0 14536 1624 ? Ss Mar16 0:01 /usr/sbin/dovecot -F -c /etc/dovecot/dovecot.conf
root 115 0.0 0.0 145660 1920 ? Ss Mar16 0:00 /usr/sbin/pure-authd -s /var/run/ftpd.sock -r /usr/local/cpanel/bin/pureauth
root 121 0.0 0.0 24236 2072 ? Ss Mar16 0:00 /usr/sbin/smartd -n -q never
nscd 126 0.0 0.1 1059752 2116 ? Ssl Mar16 0:05 /usr/sbin/nscd
root 132 0.0 0.0 82476 1332 ? Ss Mar16 0:00 /usr/sbin/sshd
root 133 0.0 0.3 308544 7972 ? Ssl Mar16 0:00 /usr/sbin/rsyslogd -n
root 146 0.0 0.0 124308 1532 ? Ss Mar16 0:00 /usr/sbin/crond -n
root 148 0.0 0.0 4488 736 tty2 Ss+ Mar16 0:00 /sbin/agetty --noclear tty2 linux
root 149 0.0 0.0 108076 776 tty1 Ss+ Mar16 0:00 /sbin/agetty --noclear --keep-baud console 115200 38400 9600 vt220
root 150 0.0 0.0 24096 980 ? Ss Mar16 0:00 /usr/sbin/atd -f
dovenull 159 0.0 0.1 43392 3588 ? S Mar16 0:00 dovecot/pop3-login
dovenull 160 0.0 0.1 43536 3844 ? S Mar16 0:00 dovecot/imap-login
dovecot 161 0.0 0.0 9568 1192 ? S Mar16 0:00 dovecot/anvil
root 162 0.0 0.0 9700 1376 ? S Mar16 0:00 dovecot/log
dovenull 164 0.0 0.1 43536 3880 ? S Mar16 0:00 dovecot/pop3-login
dovenull 165 0.0 0.1 43400 3608 ? S Mar16 0:00 dovecot/imap-login
root 170 0.0 0.1 10908 2336 ? S Mar16 0:01 dovecot/config
root 295 0.0 1.1 165248 23448 ? S Mar16 0:06 queueprocd - wait to process a task
mysql 407 0.0 2.2 706500 47848 ? Sl Mar16 2:20 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/lib/mysql/vps.err --open-files-limit=10000 --pid-file=/var/li
root 410 0.0 0.9 501748 20392 ? Ss Mar16 0:05 /usr/sbin/httpd -k start
root 412 0.0 0.7 55208 15124 ? S Mar16 0:00 /usr/local/cpanel/3rdparty/bin/perl /usr/local/cpanel/bin/leechprotect
nobody 429 0.0 0.5 502120 10552 ? S Mar16 0:00 /usr/sbin/httpd -k start
nobody 430 0.0 0.5 502024 10528 ? S Mar16 0:00 /usr/sbin/httpd -k start
nobody 431 0.0 0.5 502024 10536 ? S Mar16 0:00 /usr/sbin/httpd -k start
nobody 432 0.0 0.5 502024 10568 ? S Mar16 0:00 /usr/sbin/httpd -k start
nobody 433 0.0 0.5 502024 10580 ? S Mar16 0:00 /usr/sbin/httpd -k start
root 582 0.0 0.1 26848 3212 ? S Mar16 0:02 cpsrvd (SSL) - dormant mode - accepting --llu=1489749164 --listen=10,11,12,4,5,6,7,8,9
named 596 0.0 1.0 248500 20988 ? Ssl Mar16 0:47 /usr/sbin/named -u named
root 636 0.0 0.1 130088 2620 ? Ss Mar16 0:00 dnsadmin - dormant mode --listen=3
root 639 0.0 0.1 130448 2212 ? S Mar16 0:00 cpdavd - accepting connections on 2077, 2078, 2079, and 2080 (dormant)
root 641 0.0 0.1 129796 2368 ? S Mar16 0:04 cPhulkd - processor - dormant mode - acce --listen=3
root 644 0.0 0.1 26496 2384 ? SN Mar16 0:00 cpanellogd - sleeping for logs
root 656 0.0 1.1 104032 24496 ? S Mar16 0:03 tailwatchd
mailnull 818 0.0 0.2 77552 4672 ? Ss Mar16 0:00 /usr/sbin/exim -ps -bd -q1h -oP /var/spool/exim/exim-daemon.pid
nobody 2660 0.0 0.4 502016 10396 ? S Mar16 0:00 /usr/sbin/httpd -k start
root 7500 0.9 4.7 225200 100212 ? Ss Mar16 29:01 /usr/local/cpanel/3rdparty/perl/524/bin/perl -T -w /usr/local/cpanel/3rdparty/bin/spamd --max-spare=1 --max-children=3 --allowed-ips=127.0.0.1,::1 --pidfile=/var/run/spamd.
root 17897 0.2 4.6 225880 97464 ? S 09:37 0:00 spamd child
dovecot 17905 0.0 0.1 32188 2388 ? S 09:37 0:00 dovecot/auth
root 17937 0.0 0.0 9564 1096 ? S 09:37 0:00 dovecot/ssl-params
root 17993 0.0 0.0 113420 1960 pts/0 Ss 09:38 0:00 -bash
root 18019 0.0 0.0 149096 1772 pts/0 R+ 09:38 0:00 ps aux
A short explanation of ‘ps aux’ output:
USER – Username of the process’s owner
PID -Process ID
%CPU – Percentage of the CPU a specific process is using
%MEM – Percentage of real memory a specific process is using
VSZ – Virtual size of the process
RSS – Resident set size (number of pages in memory)
TTY – Control terminal ID
STAT – Current process status
START – Time the command started
TIME – CPU time the process has consumed
COMMAND – Command name and arguments

2. pstree – Command to Manage Processes in Linux

The pstree command displays processes in a tree format:
# pstree
systemd─┬─2*[agetty]
├─atd
├─cPhulkd - proce
├─cpanellogd - sl
├─cpdavd - accept
├─cpsrvd (SSL) -
├─crond
├─dbus-daemon
├─dnsadmin - dorm
├─dovecot─┬─anvil
│ ├─config
│ ├─2*[imap-login]
│ ├─log
│ ├─2*[pop3-login]
│ └─ssl-params
├─exim
├─httpd─┬─6*[httpd]
│ └─leechprotect
├─kthreadd/2172───khelper/2172
├─mysqld_safe───mysqld───16*[{mysqld}]
├─named───4*[{named}]
├─nscd───11*[{nscd}]
├─pure-authd
├─pure-ftpd
├─queueprocd - wa
├─rsyslogd───2*[{rsyslogd}]
├─smartd
├─spamd-dormant:
├─sshd
├─systemd-journal
├─systemd-logind
├─systemd-udevd
└─tailwatchd

3. top – Command to Manage Processes in Linux

Another way to find out what processes are running on your server:
top - 09:54:45 up 2 days,  8:44,  0 users,  load average: 0.03, 0.02, 0.00
Tasks: 50 total, 1 running, 49 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2097152 total, 316648 free, 379764 used, 1400740 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1551658 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7500 root 20 0 225060 99964 5132 S 0.3 4.8 29:10.67 spamd
1 root 20 0 129180 3584 2312 S 0.0 0.2 1:44.80 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/2172
3 root 20 0 0 0 0 S 0.0 0.0 0:00.13 khelper/2172
59 root 20 0 36920 8580 8272 S 0.0 0.4 0:09.38 systemd-journal
60 root 20 0 41880 1680 1248 S 0.0 0.1 0:00.01 systemd-udevd
96 dbus 20 0 24348 1712 1324 S 0.0 0.1 0:07.29 dbus-daemon
97 root 20 0 148184 3168 2420 S 0.0 0.2 0:00.28 pure-ftpd
99 mysql 20 0 113204 1588 1292 S 0.0 0.1 0:00.01 mysqld_safe
103 root 20 0 22232 1576 1296 S 0.0 0.1 0:03.88 systemd-logind
108 root 20 0 14536 1624 1296 S 0.0 0.1 0:01.26 dovecot
115 root 20 0 145660 1920 1412 S 0.0 0.1 0:00.25 pure-authd
121 root 20 0 24236 2072 1572 S 0.0 0.1 0:00.04 smartd
126 nscd 20 0 1059752 2116 1340 S 0.0 0.1 0:05.45 nscd
132 root 20 0 82476 1332 468 S 0.0 0.1 0:00.00 sshd
133 root 20 0 308544 8036 7440 S 0.0 0.4 0:00.71 rsyslogd
146 root 20 0 124308 1532 920 S 0.0 0.1 0:00.74 crond
148 root 20 0 4488 736 636 S 0.0 0.0 0:00.00 agetty
149 root 20 0 108076 776 676 S 0.0 0.0 0:00.00 agetty
150 root 20 0 24096 980 792 S 0.0 0.0 0:00.00 atd
159 dovenull 20 0 43392 3588 2712 S 0.0 0.2 0:00.05 pop3-login
160 dovenull 20 0 43536 3844 2892 S 0.0 0.2 0:00.44 imap-login
161 dovecot 20 0 9568 1192 1008 S 0.0 0.1 0:00.20 anvil
162 root 20 0 9700 1376 1032 S 0.0 0.1 0:00.43 log
164 dovenull 20 0 43536 3880 2920 S 0.0 0.2 0:00.27 pop3-login
165 dovenull 20 0 43400 3608 2732 S 0.0 0.2 0:00.09 imap-login
170 root 20 0 10908 2336 1180 S 0.0 0.1 0:01.85 config
295 root 20 0 165248 23448 1896 S 0.0 1.1 0:06.60 queueprocd - wa
407 mysql 20 0 706500 47848 6072 S 0.0 2.3 2:21.26 mysqld
410 root 20 0 501748 20392 13044 S 0.0 1.0 0:05.61 httpd
412 root 20 0 55208 15124 2156 S 0.0 0.7 0:00.16 leechprotect
429 nobody 20 0 502120 10552 2908 S 0.0 0.5 0:00.42 httpd
430 nobody 20 0 502024 10528 2904 S 0.0 0.5 0:00.47 httpd
431 nobody 20 0 502024 10536 2912 S 0.0 0.5 0:00.45 httpd
432 nobody 20 0 502024 10568 2940 S 0.0 0.5 0:00.41 httpd
433 nobody 20 0 502024 10580 2960 S 0.0 0.5 0:00.52 httpd
582 root 20 0 26848 3212 2000 S 0.0 0.2 0:02.02 cpsrvd (SSL) -
596 named 20 0 248500 20988 2876 S 0.0 1.0 0:47.43 named
636 root 20 0 130088 2620 1824 S 0.0 0.1 0:00.31 dnsadmin - dorm
639 root 20 0 130448 2212 976 S 0.0 0.1 0:00.40 cpdavd - accept
641 root 20 0 129796 2368 1752 S 0.0 0.1 0:04.45 cPhulkd - proce
644 root 38 18 26496 2384 1376 S 0.0 0.1 0:00.60 cpanellogd - sl
656 root 20 0 104032 24496 1604 S 0.0 1.2 0:03.73 tailwatchd
818 mailnull 20 0 77552 4672 800 S 0.0 0.2 0:00.57 exim
2660 nobody 20 0 502016 10396 2784 S 0.0 0.5 0:00.38 httpd
17993 root 20 0 113420 1968 1608 S 0.0 0.1 0:00.01 bash
18317 root 20 0 225888 97340 1664 S 0.0 4.6 0:00.15 spamd child
18325 dovecot 20 0 32188 2384 1804 S 0.0 0.1 0:00.01 auth
18415 root 20 0 153628 2124 1496 R 0.0 0.1 0:00.01 top

4. kill – Command to Manage Processes in Linux

The kill command is most often used to terminate a process. Kill can send any signal, but by default, it sends a TERM. kill can be used by normal users on their own processes or by root on any process.
The syntax of the kill command is:
kill [-signal] pid
where signal is the number or symbolic name of the signal to be sent and PID is the process identification number of the target process.
A kill without a signal number does not guarantee that the process will die, because the TERM signal can be caught, blocked, or ignored.
The command ‘kill -9 pid’ ‘guarantees’ that the process will die because signal 9, KILL, cannot be caught. The killall command kills processes by name. For example, the following command kills all Dovecot processes:
$ sudo killall dovecot
This command is used to pause the current fore

5. ctrl + z – Command to Manage Processes in Linux

ground process and move it into the background:
# service spamd restart
Redirecting to /bin/systemctl restart spamd.service
^Z
[1]+ Stopped service spamd restart

6. jobs – Command to Manage Processes in Linux

Display a list of current jobs running in the background:
# jobs
[1]+ Stopped service spamd restart

7. fg – Command to Manage Processes in Linux

This command is used to move a background process into the foreground:
# fg 1
service spamd restart
Of course, you don’t have to Manage Processes in Linux if you use one of our Fully-Managed Linux VPS Hosting services, in which case you can simply ask our expert Linux admins to manage the server for you. They are available 24×7 and will take care of your request immediately.
PS. If you liked this post, on How to Manage Processes in Linux,  please share it with your friends on the social networks using the buttons below or simply leave a reply in the comments section. Thanks.

Viewing all articles
Browse latest Browse all 1407

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>