Sponsored Content
Full Discussion: find process size script
Top Forums Shell Programming and Scripting find process size script Post 302222190 by buffoonix on Wednesday 6th of August 2008 07:41:14 AM
Old 08-06-2008
If the script you came up with is working for you
then it's quite ok.
But because you asked maybe just some suggestions
(although this is probably only a matter of personal taste)
Quote:
if [ $a -lt'ps -p `pgrep SpectroSERVER` -o rss=' ]
I think here you mixed up single quotes (embracing the whole ps command)
with backticks.
Though it may look daft it is quite ok to have nested backticks.
Nevertheless, I am not particularly fond of backticks because they have become obsolete in modern posix shells,
and thus their use is deprecated.
With bash, ksh, zsh, hp-ux sh etc. you should use $(...) instead.
So this would be how I would rewrite it
Code:
if (( $a < $(ps -p $(pgrep SpectroSERVER) -o rss=)) )); then

But this is still quite ugly.
With all those pairs of parens one easily could lose counting the closing ones.
So better split it up into several statements.
Also, what if the inner cmd expansion of pgrep fails?
Also, as you are going to calculate with these vars
you should better declare them as integers.
Also better use meaningful, imaginative variable names
Maybe one could rewrite it this way?
Code:
declare -i RSS_THRESHOLD=3942400
spectro_pid=$(pgrep SpectroSERVER)  # does its cmd name really appear in mixed case in the proc table?
[[ -z $spectro_pid ]] && exit 1
declare -i spectro_rss=$(ps -p $spectro_pid -o rss=)
if (( RSS_THRESHOLD < spectro_pid )); then

On the other hand you could parse the RSS in one proc table lookup like so
Code:
spectro_name=SpectroServer
set -- $(ps -e -o pid,ppid,rss,comm|awk -v pn=$spectro_name '$4~pn&&$2==1{print$1,$3}')
declare -i spectro_pid=$1 spectro_rss=$2

Yet another variant was to retrieve the RSS from the procfs like
Code:
spectro_rss=$(awk '$1~/^VmRSS:/{print$2}' $(printf /proc/%lu/status $(pgrep -P1 $spectro_name)))

These shall only serve as examples that there is more than one way to do it
(viz. TIMTOWTDI, spoken "timtowdy" as the Perl hailers use to say)
Quote:
b= tail -f $SPECROOT/SS/DDM/ARCHMGR.OUT | grep "ArchMgr has successfully shut down"
It's not clear to me how this should work
since it ought to produce a syntax error
though I think I can gather what the intension is;
viz. tail on the log until a certain expression appears
and then assign this line to variable b, right?
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to find the size of Process Address space.

Hello, Please help me to know, How to find out the how much amount of process addres space is required/is used for/by a process. Tnx & Regards Vishwa. (1 Reply)
Discussion started by: S.Vishwanath
1 Replies

2. Programming

How to find out the stack size occupied for a process?

Hi, In Linux how to find out what will be the stack size allocated for a process? Actually i have to fork n number of processess, and will call exec. I will be execing an executable which is already multithreaded and each thread size is defined. My doubt is how to know if the size of the... (2 Replies)
Discussion started by: rvan
2 Replies

3. Shell Programming and Scripting

Shell script to Find file size

Hi, I am writing a script which takes the input file name and concat as a new file by appending a "1" to the file name. However i am not able to get the size of this new file. I am not sure where i am going wrong. Please check the script and help me get this working. #!/bin/sh ... (1 Reply)
Discussion started by: ragsnovel
1 Replies

4. UNIX for Dummies Questions & Answers

shell script to find files by date and size

Hi, I have a directory PRIVATE in which I have several directories and each of these have several files. Therefore, I need to find those files by size and date to back up those files in another directory. I don't know how to implement this shell script using ''find''. appreciate any... (1 Reply)
Discussion started by: dadadc
1 Replies

5. Shell Programming and Scripting

Command/script to find size of Unix Box ?

Please could anyone provide me the Command/script to find the size and usage of Unix box ASAP ? (6 Replies)
Discussion started by: sakthifire
6 Replies

6. Shell Programming and Scripting

Shell Script to find the tablespace size in oracle.

Hi, I need to execute a script to find the tablespace size in oracle.But i get an error.:confused: Script Executed:- #!/bin/ksh ORACLE_SID= oracelinstance ORACLE_HOME= oracle path PATH=$ORACLE_HOME/bin export ORACLE_SID ORACLE_HOME PATH sqlplus... (4 Replies)
Discussion started by: vighna
4 Replies

7. Programming

Find Virtual address space size for process

Hi, I am looking to work on unix systems which include (hp-ux, ibm aix, solaris and linux). I want to get the total virtual address space of a process, the used virtual memory i am able to get without any problem. I have tried using getrlimit and getrlimit64, but that gives only ... (4 Replies)
Discussion started by: uiqbal
4 Replies

8. Shell Programming and Scripting

Shell script to find size of subdirectories

Hi I have to find size of subdirectory and automate it in CRON. Eg: parent directory name is NVBKP inside it there are several subdirectories I want to get the size of recent two subdirectories. I have tried ls -ltr diretory path | tail -2 But it is providing only size of the folder not... (8 Replies)
Discussion started by: ankit2012
8 Replies

9. Shell Programming and Scripting

Shell script to report file size, pid and also kill the process

Hi All, Looking for a quick LINUX shell script which can continuously monitors the flle size, report the process which is creating a file greater than certain limit and also kill that process. Can someone please help me on this? (4 Replies)
Discussion started by: vasavimacherla
4 Replies

10. UNIX for Beginners Questions & Answers

By pass a process in a Shell Script on file size

I wish to by pass a process if the file is over a certain size? not sure this makes sense current bit of the script below #if we are bypAssing the OCR if ; then echo Bypassing HOTFOLDER OCR HOT_FOLDER_DIR=$BATCH_POST_OCR_DIR; potential change below? would this work would I need... (1 Reply)
Discussion started by: worky
1 Replies
service(8)						      System Manager's Manual							service(8)

NAME
service - run a System V init script SYNOPSIS
service SCRIPT COMMAND [OPTIONS] service --status-all service --help | -h | --version DESCRIPTION
service runs a System V init script in as predictable environment as possible, removing most environment variables and with current working directory set to /. The SCRIPT parameter specifies a System V init script, located in /etc/init.d/SCRIPT. The supported values of COMMAND depend on the invoked script, service passes COMMAND and OPTIONS it to the init script unmodified. All scripts should support at least the start and stop commands. As a special case, if COMMAND is --full-restart, the script is run twice, first with the stop command, then with the start command. service --status-all runs all init scripts, in alphabetical order, with the status command. If the init script file does not exist, the script tries to use legacy actions. If there is no suitable legacy action found and COMMAND is one of actions specified in LSB Core Specification, input is redirected to the systemctl. Otherwise the command fails with return code 2. FILES
/etc/init.d The directory containing System V init scripts. ENVIRONMENT
LANG, TERM The only environment variables passed to the init scripts. SEE ALSO
chkconfig(8), ntsysv(8), systemd(1), systemctl(8), systemd.service(5) Jan 2006 service(8)
All times are GMT -4. The time now is 09:21 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy