I came across a weird scenario which i couldnt explain why.
As part of script which is run as /bin/sh shebang, we are trying to check if there is any process that runs with the same name ignoring the current process and kill it.
But for some reason, there are 2 process returned as part of echo and kill command for same process name. But if we do just ps -edf we just get one.
Please find belwo the commands
Both the above command returns 2 process(the output of command within ``), one is the current process which is created when the script is executed and the second one comes as a child of the first process but with same command. The second process gets killed forcefully and its causing a failure trigger for my job which uses that script.
If i use below command on the same script, i just get the current process.
Any inputs is highly appreciated
hi guys can somebody help me here...
i've a file that contains total of ip that connects to my server and their ip like this :
80 80 xxx.xxx.xx.xxx
75 75 xxx.xxx.xx.xxx
73 73 xxx.xxx.xx.xxx
where first columns and second were the total connections...
... (0 Replies)
Hi,
I have an application where if it runs indivisually could able to execute commands (like system("ls")) and could able to execute tcl script.
Same application if started from health monitor process (From health monitor process my application will be forked), it could not execute the... (1 Reply)
Hi
Script not getting executed via cron but executes successfully when executed manually. Please assist
cbspsap01(appuser) /app/scripts > cat restart.sh
#!/bin/ksh
cd /app/bin
date >>logfile.out
echo "Restart has been started....." >>logfile.out
date >>logfile.out
initfnsw -y restart... (3 Replies)
I have multiple input files that I want to manipulate using a shell script. The files are called 250.1 through 250.1000 but I only want the script to manipulate 250.300 through 250.1000. Before I was using the following script to manipulate the text files:
for i in 250.*; do
|| awk... (4 Replies)
Hi every one, i am new to shell script. my people given a task to write a shell script that should execute number of shell scripts in that. in that, if any shell script is failed to execute, we have to run the main script again, but the script should start execute from the failed script only..
it... (1 Reply)
Hi every one, i am new to shell script. my people given a task to write a shell script that should execute number of shell scripts in that. in that, if any shell script is failed to execute, we have to run the main script again, but the script should start execute from the failed script only..
it... (6 Replies)
Hi All,
I have written the following code
do
FILE_NO=$(echo $LINE|awk -F"|" '{print $1}'|tr "'" '+'|sed 's/\(.*\)\(++\)\(.*\)\(++\)/\3/')
INST_NO=$(echo $LINE|awk -F"|" '{print $2}'|tr "'" '+'|sed 's/\(.*\)\(++\)\(.*\)\(++\)/\3/')
if ]
then
... (3 Replies)
Hello!
Need help to write a Linux script that can be run from windows using command/Cygwin/any other way. I am new to scripting, actually i am trying to automate server health check like free disk space, memory along with few services status, if any services is not running then start services ,... (7 Replies)
Discussion started by: Sayed Ibrahim
7 Replies
LEARN ABOUT DEBIAN
pgrep
PGREP(1) User Commands PGREP(1)NAME
pgrep, pkill - look up or signal processes based on name and other attributes
SYNOPSIS
pgrep [options] pattern
pkill [options] pattern
DESCRIPTION
pgrep looks through the currently running processes and lists the process IDs which matches the selection criteria to stdout. All the cri-
teria have to match. For example,
$ pgrep -u root sshd
will only list the processes called sshd AND owned by root. On the other hand,
$ pgrep -u root,daemon
will list the processes owned by root OR daemon.
pkill will send the specified signal (by default SIGTERM) to each process instead of listing them on stdout.
OPTIONS -signal
--signal signal
Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. (pkill only.)
-c, --count
Suppress normal output; instead print a count of matching processes. When count does not match anything, e.g. returns zero, the
command will return non-zero value. (pgrep only.)
-d, --delimeter delimiter
Sets the string used to delimit each process ID in the output (by default a newline). (pgrep only.)
-f, --full
The pattern is normally only matched against the process name. When -f is set, the full command line is used.
-g, --pgroup pgrp,...
Only match processes in the process group IDs listed. Process group 0 is translated into pgrep's or pkill's own process group.
-G, --group gid,...
Only match processes whose real group ID is listed. Either the numerical or symbolical value may be used.
-l, --list-name
List the process name as well as the process ID. (pgrep only.)
-n, --newest
Select only the newest (most recently started) of the matching processes.
-o, --oldest
Select only the oldest (least recently started) of the matching processes.
-P, --parent ppid,...
Only match processes whose parent process ID is listed.
-s, --session sid,...
Only match processes whose process session ID is listed. Session ID 0 is translated into pgrep's or pkill's own session ID.
-t, --terminal term,...
Only match processes whose controlling terminal is listed. The terminal name should be specified without the "/dev/" prefix.
-u, --euid euid,...
Only match processes whose effective user ID is listed. Either the numerical or symbolical value may be used.
-U, --uid uid,...
Only match processes whose real user ID is listed. Either the numerical or symbolical value may be used.
-v, --inverse
Negates the matching. This option usually used in pgrep context. In pkill context the short option is disabled to avoid accidental
usage of the option.
-x, --exact
Only match processes whose name (or command line if -f is specified) exactly match the pattern.
-F, --pidfile file
Read PID's from file. This option is perhaps more useful for pkill than pgrep.
-L, --logpidfile
Fail if pidfile (see -F) not locked.
-V, --version
Display version information and exit.
-h, --help
Display help and exit.
OPERANDS
pattern
Specifies an Extended Regular Expression for matching against the process names or command lines.
EXAMPLES
Example 1: Find the process ID of the named daemon:
$ pgrep -u root named
Example 2: Make syslog reread its configuration file:
$ pkill -HUP syslogd
Example 3: Give detailed information on all xterm processes:
$ ps -fp $(pgrep -d, -x xterm)
Example 4: Make all netscape processes run nicer:
$ renice +4 $(pgrep netscape)
EXIT STATUS
0 One or more processes matched the criteria.
1 No processes matched.
2 Syntax error in the command line.
3 Fatal error: out of memory etc.
NOTES
The process name used for matching is limited to the 15 characters present in the output of /proc/pid/stat. Use the -f option to match
against the complete command line, /proc/pid/cmdline.
The running pgrep or pkill process will never report itself as a match.
BUGS
The options -n and -o and -v can not be combined. Let me know if you need to do this.
Defunct processes are reported.
SEE ALSO ps(1), regex(7), signal(7), killall(1), skill(1), kill(1), kill(2)STANDARDS
pkill and pgrep were introduced in Sun's Solaris 7. This implementation is fully compatible.
AUTHOR
Kjetil Torgrim Homme <kjetilho@ifi.uio.no>
REPORTING BUGS
Please send bug reports to <procps@freelists.org>
procps-ng September 2011 PGREP(1)