2015-01-07 4 views
-1

저는 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는 작업을 수행 할 때

내가 얻을.

ATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

또한 bash는/PHP 파일의 상단에 내가 도움이 정말 감사하겠습니다

#!/usr/bin/php

#!/usr/bin/bash

을 넣어. 사전에

감사합니다,

안티

+0

hpDownloadFeed.sh 및 mailDifference.php에 절대 경로를 사용하면 어떤 차이가 있습니까? – user1766169

+0

현재 작업 디렉토리에서 스크립트를 실행 해보십시오. 올바른 디렉토리에'chdir' 명령을 구현 했습니까? 또는 다른 말로 표현하자면, 프로그램의 작업 디렉토리는 무엇입니까? 사용자의 홈 디렉토리라고 가정합니다. – Rene

+0

일반적으로'system'을 C++에서 많이 사용하여'php' 나'bash'를 실행하는 것은 나쁜 생각입니다. 전자 메일을 보내려면 [vmime] (http://www.vmime.org/), 다운로드하려면 [libcurl] (http://curl.haxx.se/libcurl/)과 같은 라이브러리 사용을 고려하십시오. 이것은 더 빠르고 더 안전합니다 (외부 프로그램에 대한 의존성 감소). –

답변

1

당신은 C++ 프로그램 내 mailDifference.phphpDownloadFeed.sh에 절대 경로를 지정해야합니다.

+0

고마워, PHP 문제가 해결되었습니다. 그러나 ** 시스템 ("는/usr/빈/bash는 -c ./home/hollandPharmaCompare/bin/hpDownloadFeed.sh");** 여전히 날 같은 오류 제공 : **는/usr/빈/bash는 : ./home/hollandPharmaCompare/bin/hpDownloadFeed.sh : 해당 파일 또는 디렉토리가 없습니다. ** – AntiFTW

+0

@AntiFTW 절대 경로는 "."로 시작하지 않습니다. – molbdnilo

+0

가 삭제되었습니다. 처음에는 작동하고있는 것처럼 보입니다. 재검사를 위해 응답을 표시하겠습니다. – AntiFTW

관련 문제