- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: Shell script that finds a process by name, the...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 08:04 AM
03-12-2009 08:04 AM
I need to create a cron that will do the following:
# ps -ef | grep GLB.JOB*
bnk 15855 1 0 Mar 10 ? 0:20 jsh -Jb -c EX EB.PHANTOM.PH MIA.
OFS.USER GLB.JOBBL
root 3208 23349 0 12:10:09 pts/tp 0:00 grep GLB.JOB*
#
Then to kill the PID in this case its 15855
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 08:09 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 08:13 AM
03-12-2009 08:13 AM
Re: Shell script that finds a process by name, then kills
ps grep kill
would find many examples, including some
cautions.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 08:22 AM
03-12-2009 08:22 AM
Re: Shell script that finds a process by name, then kills
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 09:15 AM
03-12-2009 09:15 AM
Re: Shell script that finds a process by name, then kills
If you are running 11.31, look at 'pkill'.
If you are not running 11.31, make sure you match the process _exactly_ by name:
# kill $(UNIX95= ps -C GLBJOB -o pid=)
...note that there is _whitespace_ following 'UNIX95=' so that this mode is armed _only_ for the duration of the command line.
Regards!
...JRF...
- Tags:
- UNIX95
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 10:27 AM
03-12-2009 10:27 AM
Re: Shell script that finds a process by name, then kills
This won't work because GLB.JOB is a parm, not the name (jsh).
>note that there is _whitespace_ following 'UNIX95=
Instead of explaining this each time, I use:
UNIX95=EXTENDED_PS ps ...
- Tags:
- EXTENDED_PS
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 10:41 AM
03-12-2009 10:41 AM
Re: Shell script that finds a process by name, then kills
> Dennis: This won't work because GLB.JOB is a parm, not the name (jsh).
Ah, yes, so this should read:
# kill $(UNIX95= ps -C jsh -o pid=)
...since the request is to "...finds a process by name, then kills...:
Regards!
...JRF...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 06:57 PM
03-12-2009 06:57 PM
Re: Shell script that finds a process by name, then kills
But I have to admi that I do still too often search through ps -ef output.
If I do, then I prefer to have awk do all the work. I like to test with an echo statement first, then go for the kill:
$ ps -ef | awk '/GLB.JOB/ {system( "echo -9 " $2)}'
$ ps -ef | awk '/GLB.JOB/ {system( "kill -9 " $2)}'
fwiw,
Hein.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 09:23 PM
03-12-2009 09:23 PM
Re: Shell script that finds a process by name, then kills
> first, [...]
I'd be very reluctant to automate a job like
this fully, and then schedule it to run
periodically. I have an old, lame (ps+grep)
script ("/misc/kil") which displays the "ps"
line, and then asks the user for confirmation
before whacking anyone.
There are some good reasons to save a process
ID in a file somewhere when starting a job,
and then (after a quick validity check)
whacking that PID instead of trying to divine
the right PID later. Call me a coward.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-12-2009 11:04 PM
03-12-2009 11:04 PM
Re: Shell script that finds a process by name, then kills
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-15-2009 10:58 AM
03-15-2009 10:58 AM
Re: Shell script that finds a process by name, then kills
I suspect that pgrep / pkill will have the same issue
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-15-2009 11:52 AM
03-15-2009 11:52 AM
Re: Shell script that finds a process by name, then kills
That doesn't matter, you should always use UNIX95=EXTENDED_PS with ps(1). ;-)
My alias does that.
And if we really wanted to be picky, that should be fgrep or "GLB\.JOB".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-15-2009 12:29 PM
03-15-2009 12:29 PM
Re: Shell script that finds a process by name, then kills
> OldSchool: the UNIX95 switch won't work in this case
I disagree if the process name is also known. If it isn't then I would agree.
Using the UNIX95 mode of 'ps' _will_ help _isolate_ the process by name. Then, a simple 'awk' can filter the match a bit more and issue the 'kill'.
> Dennis: you should always use UNIX95=EXTENDED_PS with ps(1). ;-)
Well, that's your preference and I will agree that it does eliminate ambiguity for many, but that is _not_ strictly necessary. Wriing "UNIX95= " with trailing whitespace is sufficient to set/define the environment. ;-)
So, in all, one might meld several thoughts together into something like:
# UNIX95= ps -C jsh -o pid= -o args=|awk '/GBL\.JOB.+/ {system("kill " $1)}'
...which looks for processes named 'jsh' with command arguments that contain "GBL.JOB*" [ which we might be able to anchor to the end of the string ] and then kills them. The "=" sign after the 'pid' and 'args' options suppresses the heading line so we don't have to deal with it.
Regards!
...JRF...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-15-2009 12:53 PM
03-15-2009 12:53 PM
Re: Shell script that finds a process by name, then kills
That's not my point. My point to OldSchool was that you should use UNIX95 with ps, even if it "won't work in this case".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-15-2009 01:17 PM
03-15-2009 01:17 PM
Re: Shell script that finds a process by name, then kills
> Dennis: >JRF: that's your preference
That's not my point. My point to OldSchool was that you should use UNIX95 with ps, even if it "won't work in this case".
And I _absolutely_ agree. At the least, one can match a process name without undo fuss [ as for instance, when using 'grep
Interestingly, 'pgrep()' and 'pkill()' available in 11.31 avoid matching themselves.
With warm Regards!
...JRF...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-16-2009 04:53 AM
03-16-2009 04:53 AM
Re: Shell script that finds a process by name, then kills
the point I was trying to make is that since the process is jsh, he can't use "GLB.JOB" for the process field, and for the same reason pkill probably won't succeed either....he'd have to look for the jsh process and then do additional filtering.
I should have been more clear....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-18-2009 08:02 AM
03-18-2009 08:02 AM
Re: Shell script that finds a process by name, then kills
kill -9 `awk '{print $2}' temp.1`
rm temp.1
where $1 = GLB.JOB*