I am doing Java this session and have done my assignment 4 for socket practices.
The assignment contains 2 parts: Client and server.
I can’t modify the assignment to have proper log details (e.g. add time to logs) because it will lose marks 🙁
So, I did a bash script named “run”.
#!/bin/bash # Author name: Need-Being # Modification date: 14/10/2011 trap "" SIGHUP cd Server java JavaQuizServer 2>&1 | while read LINE do echo "`date '+[20%y/%m/%d-%T]'`[java] $LINE" >> ../JavaQuiz.log done |
“java JavaQuizServer” is the line to execute the program. I add the time before whatever it output and send it to “JavaQuiz.log”
‘trap “” SIGHUP’ is used for ignore signal SIGUP that it can be alive after closing it parent process i.e. ssh.
The logs are like this:
[2011/10/17-14:46:12][java] JavaQuizServer listening at: 40213
[2011/10/17-14:46:44][java] wang registered
[2011/10/17-14:46:57][java] wang disconnected
However, wumpus (which is a sparc machine of our school) will kill process of normal user after a few hours.
So I want to know how long it can live before killed.
Here is another bash script name monitor:
#!/bin/bash # Author name: Need-Being # Modification date: 14/10/2011 INFO=`ps -p $1 -o"pid args"` if [ $? = 0 ] then INFO=`echo "$INFO" | tail -1` echo "`date '+[20%y/%m/%d-%T]'`[logs] START:$INFO" >> JavaQuiz.log else echo "No such process: $1" exit fi while sleep 300 do if ps -p $1 > /dev/null then echo "`date '+[20%y/%m/%d-%T]'`[logs] ALIVE:$INFO" >> JavaQuiz.log else echo "`date '+[20%y/%m/%d-%T]'`[logs] DEAD:$INFO" >> JavaQuiz.log exit fi done |
The usage is easy: monitor pid &
pid is the process id of your process you want to monitor.
It can used for any process 🙂
Here is a sample of running log:
[2011/10/14-11:45:20][java] JavaQuizServer listening at: 40213 [2011/10/14-11:45:26][logs] START: 7361 /bin/bash ./run [2011/10/14-11:45:50][logs] START: 7362 java JavaQuizServer [2011/10/14-11:50:50][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-11:55:50][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-12:00:50][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-12:51:21][java] Error: Thread 8: Cannot open streams: null [2011/10/14-12:52:25][logs] START: 7362 java JavaQuizServer [2011/10/14-12:57:25][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:02:25][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:07:25][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:12:26][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:17:26][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:22:26][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:27:26][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:32:26][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:37:26][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:42:27][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:47:27][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:52:27][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-13:57:27][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:02:27][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:07:27][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:12:27][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:17:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:22:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:27:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:32:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:37:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:42:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:47:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:52:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-14:57:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:02:28][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:07:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:12:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:17:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:22:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:27:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:32:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:37:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:42:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:47:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:52:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-15:57:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-16:02:29][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-16:07:30][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-16:12:30][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-16:17:30][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-16:22:30][logs] ALIVE: 7362 java JavaQuizServer [2011/10/14-16:27:30][logs] DEAD: 7362 java JavaQuizServer
You can find that a process on wumpus only can be alive for 4 hours and a half.