#!/usr/bin/perl # 1995:01:24T09:08:17.1823213 # 1995-01-24T09:08:17.1823213 # Wed, 16 Jun 94 07:29:35 CST # Thu, 13 Oct 94 10:13:13 -0700 # Wed, 9 Nov 1994 09:50:32 -0500 (EST) # 21 dec 17:05 # 21-dec 17:05 # 21/dec 17:05 # 21/dec/93 17:05 # 1999 10:02:18 "GMT" # 16 Nov 94 22:28:20 PST require 5; use strict; use warnings; use Date::Parse; use Date::Language; use POSIX qw(setsid); use vars qw($me $till $to_exec); ($me = $0) =~ s!.*/!!; usage() if scalar(@ARGV) <= 2; $till = shift; $to_exec = join(" ", @ARGV); # daemonize the program # &daemonize; my $wake_time = str2time($till); sleep($wake_time - time); system($to_exec); sub usage { print "USGAE: $me data programm\n"; exit 1; } sub daemonize { chdir '/' or die "Can't chdir to /: $!"; open STDIN, '/dev/null' or die "Can't read /dev/null: $!"; open STDOUT, '>>/dev/null' or die "Can't write to /dev/null: $!"; open STDERR, '>>/dev/null' or die "Can't write to /dev/null: $!"; defined(my $pid = fork) or die "Can't fork: $!"; exit if $pid; setsid or die "Can't start a new session: $!"; umask 0; } # vim: set tw=78 sw=4 ts=4 sts=4 ff=unix noet: