저는 cronjob으로 실행하려고하는 C++ 프로그램에 문제가 있습니다. 그리고 나는 하루 종일 온라인으로 솔루션을 찾는 것과 관련된 모든 종류의 것을 시도해 왔습니다.cronjob으로 C++ 프로그램을 실행하는 데 문제가 있습니다.
프로그램은 commandprompt에서 실행할 때 완벽하게 실행되며 cronjob으로 실행되지만 프로그램 내에서 실행되는 다른 스크립트를 실행하는 데는 몇 가지 문제가 있습니다.
나는 나는 다음과 같은 오류를 얻고 있기 때문에, 배쉬와 PHP를 찾을 수 질수 있다는 사실과 함께 할 수있는 뭔가가 생각 :
/usr/bin/bash: ./hpDownloadFeed.sh: No such file or directory
Could not open input file: mailDifference.php
이 파일이로 실행되는 C++ 프로그램에서 호출 라고한다 cronjob에, 다음과 같이 C++ 파일 내의 파일에
* */1 * * * /absolute/path/to/file
호출은 다음과 같습니다
system("/usr/bin/bash -c ./hpDownloadFeed.sh");
string phpCommand = "/usr/bin/php -f mailDifference.php " + sizeDifference + ' ' + sizeTotal + ' ' + negative ;
std::system(phpCommand.c_str());
,536
/usr/bin/bash and /usr/bin/php
을 그리고 나는 또한 온라인으로 다른 사람의 조언에서의 crontab의 상단에 다음과 같은 추가 : 나는 어떤 PHP/bash는 작업을 수행 할 때
내가 얻을.
또한 bash는/PHP 파일의 상단에 내가 도움이 정말 감사하겠습니다ATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
을 넣어. 사전에#!/usr/bin/php
#!/usr/bin/bash
감사합니다,
안티
hpDownloadFeed.sh 및 mailDifference.php에 절대 경로를 사용하면 어떤 차이가 있습니까? – user1766169
현재 작업 디렉토리에서 스크립트를 실행 해보십시오. 올바른 디렉토리에'chdir' 명령을 구현 했습니까? 또는 다른 말로 표현하자면, 프로그램의 작업 디렉토리는 무엇입니까? 사용자의 홈 디렉토리라고 가정합니다. – Rene
일반적으로'system'을 C++에서 많이 사용하여'php' 나'bash'를 실행하는 것은 나쁜 생각입니다. 전자 메일을 보내려면 [vmime] (http://www.vmime.org/), 다운로드하려면 [libcurl] (http://curl.haxx.se/libcurl/)과 같은 라이브러리 사용을 고려하십시오. 이것은 더 빠르고 더 안전합니다 (외부 프로그램에 대한 의존성 감소). –