procmail에서 로컬로 전달되는 수신 메일에서 스크립트 (perl 및 ruby 실패)를 실행하는 데 이상한 문제가 있습니다.procmail이 스크립트를 올바르게 실행하지 않습니다.
시스템은 CentOS 5.5이고 내 메일러는 우편함이며, .forward는 이메일을 procmail에 보내도록 설정됩니다. .procmailrc와 스크립트는 우분투 서버의 작동 설정과 동일합니다.
#!/usr/bin/env perl
system("touch /home/web/touchedfile");
그리고 수신 이메일에 따라 로그의 실패 :
procmail: Executing "/home/web/perltest.pl"
/home/web/perltest.pl: line 3: syntax error near unexpected token `"touch /home/web/touchedfile"'
/home/web/perltest.pl: line 3: `system("touch /home/web/touchedfile");'
라인 결말은 여기
PATH= /usr/local/bin:/usr/bin:${PATH}
SHELL=/bin/bash
MAILDIR=$HOME/Maildir
DEFAULT=${MAILDIR}/
LOGABSTRACT=yes
LOGFILE=$HOME/Maildir/proclog
VERBOSE=YES
:0 wc
* ^To.*[email protected]
| /home/web/perltest.pl
는 펄 스크립트입니다 : 여기
는 .procmailrc입니다 모든 유닉스. 스크립트는 명령 행에서 정상적으로 실행됩니다.
명령 줄에서 직접 procmail로 파이프하면 전체 설치가 정상적으로 작동하지만 로컬 전달 프로세스의 일부로 호출 될 때 #! 라인은 스크립트에서 무시되는 것 같습니다.
:0 wc
* ^To.*[email protected]
| perl /home/web/perltest.pl
을 ...하지만 난 정말 패배를 인정하고 싶지 않아 :
은 내가 명시 적으로 같은 파이프에 펄을 실행하면 펄 스크립트를 실행할 수 있습니다.
SELinux가 실제로 범인이었습니다! 고맙습니다! – Chris