Hi all,
I'm not 100% sure if this is a bug, or something I'm doing wrong...
I'm trying to schedule some dvb recording via a web page using atd. I can get the jobs to appear in 'at -l', however when it comes time for the job to execute, it just disappears. *poof* gone. No logs, no command executed, no nothing.
I'm trying to launch a bash file that does a heap of funky things - but not having much luck. If i type in the command manually, it all works like a treat.
I am setting the job in PHP by using: $cmd = "at $starttime $whatday << COMMAND\n/home/netwiz/bin/capture '$channel' $duration\nCOMMAND";
and if I check what the job is, I get such: # at -c 11 #!/bin/sh # atrun uid=48 gid=48 # mail root 0 umask 22 HOSTNAME=asterisk.crc.id.au; export HOSTNAME SHELL=/bin/bash; export SHELL HISTSIZE=1000; export HISTSIZE USER=root; export USER LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40; 33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32: *.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32: *.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31: *.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31: *.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31: *.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01; 35:*.xpm=01;35:*.png=01;35:*.tif=01;35:; export LS_COLORS PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH MAIL=/var/spool/mail/root; export MAIL PWD=/var/www/html/tv; export PWD INPUTRC=/etc/inputrc; export INPUTRC LANG=C; export LANG HOME=/root; export HOME SHLVL=4; export SHLVL LOGNAME=root; export LOGNAME CVS_RSH=ssh; export CVS_RSH LESSOPEN=|/usr/bin/lesspipe.sh\ %s; export LESSOPEN G_BROKEN_FILENAMES=1; export G_BROKEN_FILENAMES cd /var/www/html/tv || { echo 'Execution directory inaccessible' >&2 exit 1 } ${SHELL:-/bin/sh} << `(dd if=/dev/urandom count=200 bs=1 2>/dev/null| LC_ALL=C tr -d -c '[:alnum:]')`
/home/netwiz/bin/capture '7 HD Digital' 30
Now this seems to be correct - but as I said, the job just seems to disappear. Is there something I'm missing, or is this a bug?
-- Steven Haigh
Email: netwiz@crc.id.au Web: http://www.crc.id.au Phone: (03) 9017 0597 - 0412 935 897
On Thursday 02 March 2006 12:53, Steven Haigh netwiz@crc.id.au wrote:
Hi all,
I'm not 100% sure if this is a bug, or something I'm doing wrong...
I'm trying to schedule some dvb recording via a web page using atd. I can get the jobs to appear in 'at -l', however when it comes time for the job to execute, it just disappears. *poof* gone. No logs, no command executed, no nothing.
I'm trying to launch a bash file that does a heap of funky things - but not having much luck. If i type in the command manually, it all works like a treat.
I am setting the job in PHP by using: $cmd = "at $starttime $whatday << COMMAND\n/home/netwiz/bin/capture '$channel' $duration\nCOMMAND";
and if I check what the job is, I get such: # at -c 11 #!/bin/sh # atrun uid=48 gid=48 # mail root 0 umask 22 HOSTNAME=asterisk.crc.id.au; export HOSTNAME SHELL=/bin/bash; export SHELL HISTSIZE=1000; export HISTSIZE USER=root; export USER LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40; 33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32: *.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32: *.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31: *.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31: *.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31: *.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01; 35:*.xpm=01;35:*.png=01;35:*.tif=01;35:; export LS_COLORS PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH MAIL=/var/spool/mail/root; export MAIL PWD=/var/www/html/tv; export PWD INPUTRC=/etc/inputrc; export INPUTRC LANG=C; export LANG HOME=/root; export HOME SHLVL=4; export SHLVL LOGNAME=root; export LOGNAME CVS_RSH=ssh; export CVS_RSH LESSOPEN=|/usr/bin/lesspipe.sh\ %s; export LESSOPEN G_BROKEN_FILENAMES=1; export G_BROKEN_FILENAMES cd /var/www/html/tv || { echo 'Execution directory inaccessible' >&2 exit 1 } ${SHELL:-/bin/sh} << `(dd if=/dev/urandom count=200 bs=1 2>/dev/null| LC_ALL=C tr -d -c '[:alnum:]')`
/home/netwiz/bin/capture '7 HD Digital' 30
Now this seems to be correct - but as I said, the job just seems to disappear. Is there something I'm missing, or is this a bug?
-- Steven Haigh
Email: netwiz@crc.id.au Web: http://www.crc.id.au Phone: (03) 9017 0597 - 0412 935 897
You are submitting the job as userid 48, gid 48 - does the command normally work OK as a non root userid ? (The device read by the "capture" command must have appropriate privileges if you're not running it as root - which device / what privileges?) Does the at-job work if submitted as root ? Do you have SELinux in Enforcing mode ? If so, does the at job work after doing 'setenforce 0' ? Try changing the command to: /home/netwiz/bin/capture '7 HD Digital' 30 || echo "FAILED: $?" that should generate some mail with the exit status if it fails. Regards, Jason Vas Dias at package maintainer Red Hat Inc.
On 03/03/2006, at 5:03 AM, Jason Vas Dias wrote:
On Thursday 02 March 2006 12:53, Steven Haigh netwiz@crc.id.au wrote:
Hi all,
I'm not 100% sure if this is a bug, or something I'm doing wrong...
I'm trying to schedule some dvb recording via a web page using atd. I can get the jobs to appear in 'at -l', however when it comes time for the job to execute, it just disappears. *poof* gone. No logs, no command executed, no nothing.
I'm trying to launch a bash file that does a heap of funky things - but not having much luck. If i type in the command manually, it all works like a treat.
I am setting the job in PHP by using: $cmd = "at $starttime $whatday << COMMAND\n/home/netwiz/bin/capture '$channel' $duration\nCOMMAND"; -----8<-----------
You are submitting the job as userid 48, gid 48 - does the command normally work OK as a non root userid ? (The device read by the "capture" command must have appropriate privileges if you're not running it as root - which device / what privileges?) Does the at-job work if submitted as root ? Do you have SELinux in Enforcing mode ? If so, does the at job work after doing 'setenforce 0' ? Try changing the command to: /home/netwiz/bin/capture '7 HD Digital' 30 || echo "FAILED: $?" that should generate some mail with the exit status if it fails.
Ok, I found the issue - it was actually a multiple of things that I'd overlooked. I wasn't getting the email because sendmail wasn't started on that machine - which when I started, I got a flood of email hit my inbox - logwatchs' from 4 days ago etc :)
it turns out that because apache has a limited PATH, one of the commands (zapdvb to be exact) lived in /usr/local/bin - however this wasn't in apache's path for the at job. So, I added the full path name to the script, and now everything works.
Sorry about the false alarm - it's something dead simple that I'm embarrassed I overlooked :)
-- Steven Haigh
Email: netwiz@crc.id.au Web: http://www.crc.id.au Phone: (03) 9017 0597 - 0412 935 897