Robert Citek
2013-03-12 12:03:54 UTC
Hello all,
I have a script that runs out of crontab that occasionally runs longer
than some time limit. I would like the script to log when and only
when it runs longer than some timelimit.
Here was the initial prototype for the script:
#!/bin/bash
runtime=10
sleeptime=30
(
sleep $sleeptime
date >> /tmp/log.txt
) &
bg=$!
sleep $runtime
kill $bg
This works for $runtime greater than $sleeptime. However, when
$runtime is less than $sleeptime, killing the parent process orphans
the sleep command. When I run this command several times, I end up
with lots of orphaned sleep processes.
The quick-n-dirty solution was to substitute this for..loop for the
sleep command:
for((i=0;i<$sleeptime;i++)) ; do sleep 1 ; done
It works good-enough, but am looking for a more elegant solution.
Any thoughts?
Regards,
- Robert
--
--
Central West End Linux Users Group (via Google Groups)
Main page: http://www.cwelug.org
To post: ***@googlegroups.com
To subscribe: cwelug-***@googlegroups.com
To unsubscribe: cwelug-***@googlegroups.com
More options: http://groups.google.com/group/cwelug
---
You received this message because you are subscribed to the Google Groups "Central West End Linux Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cwelug+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
I have a script that runs out of crontab that occasionally runs longer
than some time limit. I would like the script to log when and only
when it runs longer than some timelimit.
Here was the initial prototype for the script:
#!/bin/bash
runtime=10
sleeptime=30
(
sleep $sleeptime
date >> /tmp/log.txt
) &
bg=$!
sleep $runtime
kill $bg
This works for $runtime greater than $sleeptime. However, when
$runtime is less than $sleeptime, killing the parent process orphans
the sleep command. When I run this command several times, I end up
with lots of orphaned sleep processes.
The quick-n-dirty solution was to substitute this for..loop for the
sleep command:
for((i=0;i<$sleeptime;i++)) ; do sleep 1 ; done
It works good-enough, but am looking for a more elegant solution.
Any thoughts?
Regards,
- Robert
--
--
Central West End Linux Users Group (via Google Groups)
Main page: http://www.cwelug.org
To post: ***@googlegroups.com
To subscribe: cwelug-***@googlegroups.com
To unsubscribe: cwelug-***@googlegroups.com
More options: http://groups.google.com/group/cwelug
---
You received this message because you are subscribed to the Google Groups "Central West End Linux Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cwelug+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.