You can combine the fact that you know your PID in the environment variable $$ with being able to schedule a job to run at a specific time in the future (say, 1 hour) using at to do what you're asking.
Here's a quick and dirty sample script that shows how it might be done: ===== #!/bin/bash # test of setting a timer to kill the current process echo "my PID is $$" # create file of commands for at to run echo "kill $$" > /tmp/kill-myself.$$ # schedule the job at -f /tmp/kill-myself.$$ now + 1 minute # remove the file of commands rm /tmp/kill-myself.$$ # go off and do something echo "Going to sleep ..." sleep 10000 echo "Woke up." exit ===== And here's the output from running the script: [EMAIL PROTECTED] tmp]$ ./kill-test my PID is 5592 warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh job 4 at 2004-12-09 21:58 Going to sleep ... Terminated [EMAIL PROTECTED] tmp]$ Mike On Thu, Dec 09, 2004 at 07:33:13PM -0500, Victor Snesarev wrote: > Here's the situation... I start a process using cron, but I need to kill > that process one hour later using cron. There doesn't seem to be a > crontab option to run a command for a specified period of time. I > suppose I could set an environment variable at the start of the process > containing the process ID and an hour later use that environment > variable as an argument to "kill", but I do not know a way to retrieve > the process ID. > > Would it be easy to parse "ps | grep <command_name>" or is there an > better way to do this? > > Any suggestions? > > TIA, > Victor -- Mike Broome mbroome(at)employees.org -- TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug TriLUG Organizational FAQ : http://trilug.org/faq/ TriLUG Member Services FAQ : http://members.trilug.org/services_faq/ TriLUG PGP Keyring : http://trilug.org/~chrish/trilug.asc
