1

サーバー上で c++ プログラムを実行しようとしていますが、現時点では MySQL データベースを更新しています。私はCronでそれを実行しています。プログラムは自分のコンピューター (Ubuntu 10.10) でコンパイルおよび実行されていますが、サーバーで何かが動作しているようです。

PHP スクリプトを使用して cron が機能しているかどうかを確認しましたが、c++ プログラムを実行するにはどうすればよいかわかりません。directAdmin では、次のコマンドを使用しています。

/home/rogier/domains/ditiseenwinkel.nl/public_html/test/program &>/home/rogier/domains/ditiseenwinkel.nl/public_html/test/testsql2.log  

programコンパイルされたプログラムはどこにありますか。奇妙なことに、ログファイルは空です。

私は何を間違っていますか?また、Cron 経由で C++ プログラムを実行するにはどうすればよいですか?

前もって感謝します!

4

3 に答える 3

0

プログラムは同じサーバー上でコンパイルされましたか?そうでない場合は、同じサーバーでソースコードをコンパイルする必要があります。

于 2012-05-21T09:53:41.570 に答える
0

Cronにとって、シェルからそのコマンドを実行できる限り、実行しているプログラムの種類は関係ありません。シェルで作成したコマンドが機能する場合は、cron でも機能するはずです。

ただし、cron の環境変数はまったく異なる可能性があることに注意してください。これが cron の問題の最大の原因です。自分のユーザー用に cron スクリプトをインストールしても、cron 環境に PATH がないことに驚くかもしれません。したがって、単純なシステム コマンドのフル パスを /bin または /usr/bin に指定する必要があります。

他のユーザーが言ったように、コマンドが自分以外のユーザーによって実行された場合、アクセス権が発生する場合があります。私は通常、最も安全なパス「/tmp」でダンプ ファイルをテストします (ユーザーが chroot されている場合を除く)。

于 2012-05-21T10:26:43.400 に答える
0

C++ プログラムは、実行可能ファイルにコンパイルする必要があります。そこまで来たら、それが書かれた言語はもはや問題ではありません!

指定されたコマンド ラインはサーバー上で実行され、出力が生成されますか (つまり、cron ではなくコマンド ライン経由)? その場合、アプリはcronにない環境に依存している可能性があります。

リダイレクトなしで実行するのはどうですか?

ログファイルへの書き込み権限はありますか?

于 2012-05-21T09:57:37.010 に答える