#!/usr/bin/perl -w use strict; use integer; use Fcntl qw(:flock); my $SIGFILE = '/home/luciano/.thunderbird/taglines/firma.txt'; my $LCKFILE = '/home/luciano/.thunderbird/taglines/firma-lock.txt'; my $SIGPROG = "fortune"; my $SIGTAG = "(Not so) Random fortune:\n"; my $timeout = 90; # test before forking open(LCKFILE, $LCKFILE) or die $!; flock(LCKFILE, LOCK_EX|LOCK_NB) or exit 0; # the following is totally silent on errors! (fork == 0) or exit; my $SIGNATURE; while (1) { $SIGNATURE = `$SIGPROG`; open(SIGNATURE, ">$SIGFILE") or die $!; printf SIGNATURE ("%s%s", $SIGTAG, $SIGNATURE); close SIGNATURE or die $!; sleep $timeout; }