pkill and killall command is not working on Ubuntu 18 [closed] - linux

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago.
Improve this question
I have the following process:
root 18538 1 0 00:03 ? 00:00:36 /data/software/anaconda2/envs/py3/bin/python /data/software/anaconda2/envs/py3/bin/gunicorn zapier2cloud.wsgi:application -c ./zapier2cloud.conf.py
root 18541 1 0 00:03 ? 00:00:32 /data/software/anaconda2/envs/py3/bin/python /data/software/anaconda2/envs/py3/bin/gunicorn zapier2cloud.wsgi:application -c ./zapier2cloud.conf.py
root 18544 1 0 00:03 ? 00:00:36 /data/software/anaconda2/envs/py3/bin/python /data/software/anaconda2/envs/py3/bin/gunicorn zapier2cloud.wsgi:application -c ./zapier2cloud.conf.py
root 18545 1 0 00:03 ? 00:00:37 /data/software/anaconda2/envs/py3/bin/python /data/software/anaconda2/envs/py3/bin/gunicorn zapier2cloud.wsgi:application -c ./zapier2cloud.conf.py
root 18546 1 0 00:03 ? 00:00:36 /data/software/anaconda2/envs/py3/bin/python /data/software/anaconda2/envs/py3/bin/gunicorn zapier2cloud.wsgi:application -c ./zapier2cloud.conf.py
root 18547 1 0 00:03 ? 00:00:40 /data/software/anaconda2/envs/py3/bin/python /data/software/anaconda2/envs/py3/bin/gunicorn zapier2cloud.wsgi:application -c ./zapier2cloud.conf.py
I ran the command: sudo pkill -f gunicorn, but after that, it still shows the same processes with the same pids.
What happened? is there any thing wrong?

Sometimes processes can just ignored your kill command. Default signal sent is SIGTERM, if it is not caught, your process will continue to run.
To force kill your process, send a SIGKILL signal using '-9' :
kill -9 {PID}
List of signals :
kill -l

Related

How to get the PID, process name, command line of the current terminal window session? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 2 years ago.
Improve this question
I was trying to find out, how do i get the pid, process name, command line of the current terminal(what is running in the background and got started with that terminal)?
By running:
echo $$
15925
You will get the process ID of your current session. Using this process ID, you can then run:
ps -ef | grep 15925
foo 14870 15925 0 10:32 pts/6 00:00:00 sleep 120
foo 14871 15925 0 10:32 pts/6 00:00:00 ps -ef
foo 14872 15925 0 10:32 pts/6 00:00:00 grep --color=auto 15925
foo 15925 15919 0 Nov23 pts/6 00:00:08 -bash
The second column will show the parent process (15925) and the second the parent

Why use (ps -f&) to display process information, and then display the PPID of 1 instead of the PID of the main shell (-bash)? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago.
Improve this question
When I use (ps -f&) to display the process information, I found that its PPID is 1, I am confused, why is it not the PID of the main shell (-bash)? I continued to execute the same command twice, and produced a strange process ([bash] <defunct>) with the following output:
The first test:
[root#localhost ~]# (ps -f&)
UID PID PPID C STIME TTY TIME CMD
root 2078 2076 0 01:44 pts/0 00:00:00 -bash
root 2244 1 0 03:07 pts/0 00:00:00 ps -f
The second test:
[root#localhost ~]# (ps -f&)
UID PID PPID C STIME TTY TIME CMD
root 2078 2076 0 01:44 pts/0 00:00:00 -bash
root 2245 2078 0 03:07 pts/0 00:00:00 [bash] <defunct>
root 2246 1 0 03:07 pts/0 00:00:00 ps -f
I tested it many times and found that the [bash] <defunct> process rarely appears (occasionally), but the PPID of the ps -f process is always 1.
My question is:
Why is the PPID of ps -f 1 instead of the PID of the main shell (-bash)?
What is the strange [bash] <defunct> process? Why didn't it appear in the first test?
When you do ( ps -f & ) with the ampersand, the subshell doesn't wait on the ps process so chances are it'll exit sooner than ps. If it does, ps no longer has a parent who'd reap its exit status with wait/waitpid/waitid so what happens on UNIXes is such processes (so called orphan processes) get reparented, normally to the init process (pid == 1) (Linux also allows for the concept of subreapers other than init).
What you're seeing in the second test is a temporary zombie. When a child process exits, it becomes a zombie ([defunct]) until its parent reaps its exit information. You must have caught the subshell at a moment where it exited but its parent (your main shell) hasn't managed to reap its exit info yet. Unless the parent shell is blocked in some way from continuing and thereby reaping the exit info, this should be only a temporary, transient state.

Difference between pidof and pgrep? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 4 years ago.
Improve this question
I'm not sure why pidof doesn’t work, but pgrep works.
$ pidof squid
returns nothing
$ pgrep squid
returns 3322
How can I get the 3322 using pidof?
pidof will return details regarding the name of a actual program whereas pgrep will return details regarding any processes that match the provided pattern. This is clearly stated in the man pages of both tools.
pidof [-s] [-c] [-n] [-x] [-m] [-o omitpid[,omitpid..]] [-o omitpid[,omitpid..]..] program [program..]
vs.
pgrep [options] pattern
When you're looking for the executable squid, pgrep can match it because the pattern matches /usr/bin/squid*. Whereas pidof cannot find a program called squid, because the Squid daemon is likely called something like /usr/bin/squid-server.
For example, here I'm looking at the output of ps and looking for programs running with the name systemd within them:
$ ps -eaf | grep systemd
root 1 0 0 Sep03 ? 00:00:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 425 1 0 Sep03 ? 00:00:03 /usr/lib/systemd/systemd-journald
root 480 1 0 Sep03 ? 00:00:00 /usr/lib/systemd/systemd-udevd
dbus 630 1 0 Sep03 ? 00:00:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root 648 1 0 Sep03 ? 00:00:00 /usr/lib/systemd/systemd-logind
pgrep is able to find them as well:
$ pgrep -l systemd
1 systemd
425 systemd-journal
480 systemd-udevd
648 systemd-logind
But pidof only finds the first one:
$ pidof systemd
1
That's because the PID 1, has the name /usr/bin/systemd.

Linux top -b show specific columns only [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 9 years ago.
Improve this question
I would like to capture the output of the top command to use in another program however I only need certain information, more precisely I only need the USER, PID, CPU, COMMAND columns.
I already have the command top -b -n 1 | sed -n '7,12p' to filter the top 5 results but I cannot go any further because I do not know much about sed/awk.
Example: here is what I get
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4 root 20 0 98748 50608 4608 S 6.4 4.9 212:12.16 X
1 root 20 0 2132 128 96 S 0.0 0.0 0:07.62 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 7:28.54 ksoftirqd/0
and here is what i want
PID USER %CPU COMMAND
4 root 6.4 X
1 root 0.0 init
2 root 0.0 kthreadd
3 root 0.0 ksoftirqd/0
pass to:
awk '{print $1,$2,$9,$NF}'
Everything combined.
top -b -n 1 | awk 'NR>6 && NR<13 {printf "%6s %-4s %-4s %-s\n",$1,$2,$9,$NF}'

Reserved Process ID [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
As per my knowledge Process ID 1 is reserved for init.
What does process id 2 indicate? why no softlink to the binary executable for this process ID.
sudo ls -l /proc/1/exe
lrwxrwxrwx 1 root root 0 Apr 24 14:53 /proc/1/exe --> /sbin/init
But for /proc/2/exe
ls : cannot read symbolic link /proc/2/exe: No such file or directory
lrwxrwxrwx 1 root root 0 Apr 24 14:53 /proc/2/exe
Im using Ubuntu 12.04.
pls share your knowledge.
It's because there is no binary to link to. This process was probably started by the kernel itself. Take a look at the out put of ps aux. Any process you see listed in brackets will not have a exe soft link either.
because at the moment you are asking there is no process of pid 2.
the kernel allocates pids at will.
Or because pid 2 is for some kernel task; on my machine it is for kthreadd which is some pure kernel process. See this answer.

Resources