finding idle time of a process


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting finding idle time of a process
# 29  
Old 12-23-2006
Guru's

I think the below line attaching the process to tty.

TTY=$($PS -o tty4 $PID)

because when executing this line i get the error.

crypto $ UNIX95=1 ps -o tty4 $PID
ps: tty4 is not a valid field name

I think i have to give tty there. please let me know.

crypto $ UNIX95=1 ps -o tty
TT
pts/0
pts/0
crypto $ UNIX95=1 ps -o tty4
ps: tty4 is not a valid field name


Could you please let me know. my system contains the below terminal.

crypto $ w
7:04pm up 100 days, 14 mins, 2 users, load average: 0.01, 0.01, 0.01

User tty login@ idle JCPU PCPU what

root console 8:02pm2400:02 ksh -o vi
x033870 pts/0 5:36pm w


let me know anything i have to change.

Last edited by Krrishv; 12-23-2006 at 11:51 PM..
# 30  
Old 12-24-2006
Vino is a Linux user and that tty4 thing seems to be a Linux only option. Linux seems to have 4 ways to specify tty in the -o option: tt, tty, tty4, and tty8. Here I just tried all 4 of them:
Code:
$ for t in tt tty tty4 tty8 ; do ps -o $t,pid -p 805,992; done
TT         PID
tty1       805
pts/1      992
TT         PID
tty1       805
pts/1      992
TTY    PID
1      805
1      992
TTY        PID
tty1       805
pts/1      992
$

So TT and TTY are identical. TTY8 changes the title to TTY. And while TTY4 also changes the title to TTY, it has the nasty effect of not showing enough info to be useful. Note that we cannot tell tty1 from pts/1 with TTY4.

So yes, you need to use TTY since that is all that HP-UX has. But even if TTY4 was available I don't think you should use it.
# 31  
Old 12-24-2006
Thanks for your comment on this. Now i replaced tty in the script instead of tty4 but i get a error saying invalid option specifying the process id there.

Below is the output.

crypto $ sh -x proc_new.sh 17096
+ set -o vi
+ alias h=history 23
+ alias rm=rm -i
+ alias cp=cp -i
+ alias mv=mv -i
+ alias l=ls -m
+ alias ll=ls -l
+ alias lsf=ls -F
+ [[ -z 17096 ]]
+ [[ 17096 != +([0-9]) ]]
+ PID=17096
+ + which w
W=/bin/w
+ + which ps
PS=/bin/ps
+ + which sed
SED=/bin/sed
+ + which awk
AWK=/bin/awk
+ + /bin/ps -o tty 17096
+ UNIX95=1
/bin/ps: Unknown option (17096).
TTY=
+ + /bin/sed -e /TTY/d
+ echo
TTNo=
+ + /bin/w
+ /bin/awk { print $5 }
+ /bin/sed -n -e /pts\//p
TIME=
+ echo 17096 has been idle for
17096 has been idle for
+ [[ = *day* ]]
+ IDLE=
+ [[ -gt 30 ]]

Please let me know any idea.
# 32  
Old 12-24-2006
Look at the code I posted above. You need a -p before the pid.
# 33  
Old 12-25-2006
Yep it works great thanks. Now i get a different error with sed command where that "sed: Function /pts\/TT cannot be parsed."

i replaced the double quotes with single quotes in sed command it works but i am not getting any output properly.but itz not calculating any time there.

here is the complete output of the script.

crypto $ sh -x proc_new.sh 278
+ set -o vi
+ alias h=history 23
+ alias rm=rm -i
+ alias cp=cp -i
+ alias mv=mv -i
+ alias l=ls -m
+ alias ll=ls -l
+ alias lsf=ls -F
+ [[ -z 278 ]]
+ [[ 278 != +([0-9]) ]]
+ PID=278
+ + which w
W=/bin/w
+ + which ps
PS=/bin/ps
+ + which sed
SED=/bin/sed
+ + which awk
AWK=/bin/awk
+ + /bin/ps -o tty -p 278
+ UNIX95=1
TTY=TT
pts/0
+ + /bin/sed -e /TTY/d
+ echo TT
pts/0
TTNo=TT
pts/0
+ + /bin/w
+ /bin/awk { print $5 }
+ /bin/sed -n -e /pts\/$TTNo/p
TIME=
+ echo 278 has been idle for
278 has been idle for
+ [[ = *day* ]]
+ IDLE=
+ [[ -gt 30 ]]

without -x the output comes like below.

crypto $ sh proc_new.sh 278
278 has been idle for

no time nothing is coming.

Last edited by Krrishv; 12-25-2006 at 03:41 AM..
# 34  
Old 12-26-2006
I tried with the script line by line but i think there somethng needs to be changed when attaching process to TTY.

Could you please help me. I still get the same error as above.
# 35  
Old 12-28-2006
Request you to help me guru's.

Thanks.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Idle Process Exhausting CPU

I noticed when having some trouble with code I was testing that the CPU was becoming exhausted and I would have to reboot. After rebooting a couple times I decided to check for other problems before trying my code again. That's when I noticed that the CPU with the idle process was through the roof:... (5 Replies)
Discussion started by: Azrael
5 Replies

2. Shell Programming and Scripting

Kill idle Process using a script

Hi, I need a script that can automatically kill all processes named "webrepn" and "webrebw" if idle for more than 30 minutes. Then I will have a Cron Job to run the script every night or 2-3 times a day depends on how this script helps. Right now, I run "ps -ef | grep webrebn" and "kill -9... (7 Replies)
Discussion started by: MaggieL
7 Replies

3. UNIX for Advanced & Expert Users

idle time again

I need to find the idle time on a machine in the manner: How long time ago somebody did the last action with mouse or keyboard? Unfortunately "w" doesn't do this. It produced the following output on a machine a user was actually working on with an application: 15# w 15:55:28 up 15 days, ... (1 Reply)
Discussion started by: elbrand
1 Replies

4. AIX

Kill IDLE Process using script !!!

Dear Friends , I am using DB2 database in AIX 5.3 server . In my server some IDLE process are generated after several times which I need to kill it manually each and every time . The process I query like following : root@bagpuss $ ps auxw|sort -r +3|head -10 USER PID %CPU %MEM ... (3 Replies)
Discussion started by: shipon_97
3 Replies

5. HP-UX

how to fetch idle time

HP-UX B.11.23 ia64 Hi everyone, First of all I am new member to this forum. Thankyou all for this forum, it helped me many times. Coming to my question,I am writing a C program to find the log info of the users who are currently logged in(precisely what who -u do). I am able to get... (0 Replies)
Discussion started by: bhiku matre
0 Replies

6. Shell Programming and Scripting

How to run a process when the computer is idle?

Hi there, I wrote a script that scans a folder for new files. I don't want to run it at specific times but only when the computer is NOT busy. I tried to use nice but it doesn't really work. I mean, even if my process has less priority, it still slows down the other processes. I did a test... (3 Replies)
Discussion started by: chebarbudo
3 Replies

7. Shell Programming and Scripting

How to kill process after x idle min?

I need a script to kill those process id whose idle time is more than 30min plz help me (3 Replies)
Discussion started by: salil2012
3 Replies

8. Shell Programming and Scripting

User Idle Time

Does anyone know how do you determine the user idle time of stdin in order to log the user out for being idle too long. I would like to write a c program to do this but I it is not clear upon how to determine idle time from keyboard input. (9 Replies)
Discussion started by: cpaquette
9 Replies

9. UNIX for Dummies Questions & Answers

How to see if the process is idle

We are running AIX 5.3 and for ICICS Printing we have process called cicstermp runing whcih attaches the print to print queue But is process is triggered when ever a print is to be given Can we find the processes which are idle I mean every time a print is given it creats a new cicstermp... (1 Reply)
Discussion started by: pbsrinivas
1 Replies

10. Shell Programming and Scripting

finding idle users

I am trying to write a script that will list the idle users on my system which is running HPUX 11.11. The script is currently written as : who -u > /home/rfm/scripts/user.txt echo " There are currently... " wc -l /home/rfm/scripts/user.txt echo " User logins on System : `uname -n` ... (3 Replies)
Discussion started by: rfmurphy_6
3 Replies
Login or Register to Ask a Question