Sponsored Content
Top Forums Shell Programming and Scripting Suppressing the terminated message from pkill & killall commands in a bash script Post 302505402 by danmc on Wednesday 16th of March 2011 10:23:52 PM
Old 03-16-2011
Suppressing the terminated message from pkill & killall commands in a bash script

Hi all,

I've been pulling my hair out with this problem for 3 daysSmilie now without success any help would be massively appreciated.

Basically the script is used to shutdown a rails server so a new IP address can be assigned, the shutdown part is taken care of in function_one using the "pkill master" command. Once the server has been shutdown function_two is supposed to run and restart the server.

The problem is the when "pkill master" is run and the processes are killed the script is broken by the terminated message and function two never gets called. I understand that the terminated message is not coming from STDOUT or STDERR and that it is being generated by the shell's job control mechanism so I cant redirect to /dev/null or use 2>/dev/null to redirect the message.

I'm at my wits end I can not find a way to "pkill master" or "killall -q -r master" without generating the terminated message. Thanks in advance.



Code:
#!/bin/bash

function_one(){
if pgrep ruby > /dev/null | pgrep master
  then
      pkill master
      sleep 5
      function_two  
     
  else
       function_two  
    fi
}

function_two(){
    Do Stuff
}
function_one

 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

How to supress a "Killed" message when a process is terminated?

Does anyone know how I can supress the "Killed" message that's produced when I kill a process? I've got a script that performs a "tail -f" on a database error log and pipes the output into an awk script which looks for certain error messages and forwards any that qualify to my pager. The problem... (2 Replies)
Discussion started by: kenwolff
2 Replies

2. Shell Programming and Scripting

Killall script?

I am doing some system tuning and figuring out how to write a script that will kill multiple processes or all processes with the same owner. Can someone help me out? Thanks (5 Replies)
Discussion started by: nmajin
5 Replies

3. UNIX for Dummies Questions & Answers

suppressing an error message using the "ls" command

hi I'm new here so my question maybe be retarded or out of place: Is there a way to suppress the "No such file or directory" error message when using the "ls" command ? thanks (5 Replies)
Discussion started by: basher400
5 Replies

4. UNIX for Dummies Questions & Answers

BASH script that sends text message or email

Hi, I have a BASH shell script that batch processes data. I often start this script before I leave to go home for the day, and leave it processing over night. It has come to my attention that it would be very useful for me to add the capability of making the script notify me about certain things... (2 Replies)
Discussion started by: msb65
2 Replies

5. UNIX for Advanced & Expert Users

How would I create a NULL terminated file in Unix under Bash?

I am testing some file routines against potential "nasty name" Unix files, such as those with a CR, LF, in the middle or NULL terminated, utf multi-byte character. So, under Bash, I want some way of: mv "name" "name\0" with the \0 a real NULL. Against all my efforts, I have not been... (2 Replies)
Discussion started by: drewk
2 Replies

6. Red Hat

Suppressing Error Message is not working

I need to suppress the error message for commands. I have given the command like below lsb_release -dr 2>/dev/null But it is not working. Am testing with Red Hat Linux release 9. Guide me. Thanks in advance (2 Replies)
Discussion started by: forumguest
2 Replies

7. Shell Programming and Scripting

Suppressing a message from being displayed

I have a script which checks for *.txt files in a particular directory and if no files were found then it goes into sleep for 10 secs and looks back for files again and if any files were found then the script does some processing with the files found, which is my requirement too. FILE_EXISTS=`ls... (5 Replies)
Discussion started by: vpv0002
5 Replies

8. Shell Programming and Scripting

Suppressing carriage return in bash alias

I'd like to create an alias that displays my string but leaves my cursor at the end. Not seeing any examples of this. One indirect way might be to preload or stuff the history buffer, so I just hit up arrow. (2 Replies)
Discussion started by: tns1
2 Replies

9. UNIX for Advanced & Expert Users

script & issues with non-AIX commands

I need to capture lengthy screen puts and direct to .txt. Script command is started on Wed Aug 22 13:27:36 EDT 2012. # qcp sh: qcp: not found. An issue I have is that script command doesn't take non-AIX commands. I need to run application-specific commands and capture the output in... (2 Replies)
Discussion started by: Daniel Gate
2 Replies

10. HP-UX

Hpux pkill,a little help with script

This work #!/usr/bin/sh COMM=${1} shift UNIX95=1 ps -C ${COMM} -o pid='' | while read P do kill -15 ${P} done This don't work #!/usr/bin/sh COMM=${1} shift UNIX95=1 ps -C ${COMM} -o pid='' | while read P do kill -"$@" ${P} done (7 Replies)
Discussion started by: Linusolaradm1
7 Replies
PGREP(1)							Linux User's Manual							  PGREP(1)

NAME
pgrep, pkill - look up or signal processes based on name and other attributes SYNOPSIS
pgrep [-cflvx] [-d delimiter] [-n|-o] [-P ppid,...] [-g pgrp,...] [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...] [-t term,...] [pattern] pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...] [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...] [-t term,...] [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
-c Suppress normal output; instead print a count of matching processes. -d delimiter Sets the string used to delimit each process ID in the output (by default a newline). (pgrep only.) -f The pattern is normally only matched against the process name. When -f is set, the full command line is used. -g 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 gid,... Only match processes whose real group ID is listed. Either the numerical or symbolical value may be used. -l List the process name as well as the process ID. (pgrep only.) -n Select only the newest (most recently started) of the matching processes. -o Select only the oldest (least recently started) of the matching processes. -P ppid,... Only match processes whose parent process ID is listed. -s 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 term,... Only match processes whose controlling terminal is listed. The terminal name should be specified without the "/dev/" prefix. -u euid,... Only match processes whose effective user ID is listed. Either the numerical or symbolical value may be used. -U uid,... Only match processes whose real user ID is listed. Either the numerical or symbolical value may be used. -v Negates the matching. -x Only match processes whose name (or command line if -f is specified) exactly match the pattern. -signal Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. (pkill only.) 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: unix$ pgrep -u root named Example 2: Make syslog reread its configuration file: unix$ pkill -HUP syslogd Example 3: Give detailed information on all xterm processes: unix$ ps -fp $(pgrep -d, -x xterm) Example 4: Make all netscape processes run nicer: unix$ 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> Albert Cahalan <albert@users.sf.net> is the current maintainer of the procps package. Please send bug reports to <procps-feedback@lists.sf.net> Linux June 25, 2000 PGREP(1)
All times are GMT -4. The time now is 04:33 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy