Cannot get Script to Run Via Crontab
Giorgos Keramidas
keramida at ceid.upatras.gr
Sun Dec 16 23:54:54 PST 2007
On 2007-12-16 19:10, David Goodnature <goodnaturenet at hotmail.com> wrote:
> I have a perl script that I can execute from the command line as root.
> It runs fine. When I try to automate it using the root crontab, the
> script fails.
>
> The lines from my script that are causing the problem are:
>
> my $scomd = "/usr/local/bin/ps2pdf -dPDFSETTINGS=/prepress -dProcessColorModel=/DeviceGray -dAutoRotatePages=/PageByPage -dDownsampleMonoImages=true -dMonoImageDownsampleType=/Average -dMonoImageDownsampleThreshold=1.5 -dMonoImageResolution=600 ".$inpath.$cur_ps_files[0]." ".$outpath.$pdffilename;
>
> ### create the new .pdf file from the .ps file
> system($scomd) == 0 or return "system $scomd failed: $?";
>
> The cron message to mail/root ends with:
>
> exec: ps2pdf12: not found
>
> I am assuming that cron cannot find a path or a config file for
> ghostscript, but I don't have any idea how to fix this problem.
Yes. That's what is happenning. The default PATH of cron jobs doesn't
include `/usr/local/bin', but you have lots of options:
1) Add it to the crontab file
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
crontab entries here
2) Modify the default path in your Perl script:
$ENV{PATH} = '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin';
my $scomd = join(' ', ('/usr/local/bin/ps2pdf',
'-dPDFSETTINGS=/prepress',
'-dProcessColorModel=/DeviceGray',
'-dAutoRotatePages=/PageByPage',
'-dDownsampleMonoImages=true',
'-dMonoImageDownsampleType=/Average',
'-dMonoImageDownsampleThreshold=1.5',
'-dMonoImageResolution=600'
$inpath.$cur_ps_files[0],
$outpath.$pdffilename));
system($scomd) == 0 or return "system $scomd failed: $?";
More information about the freebsd-questions
mailing list