絶対パスを使用してパラメータとしてバイナリを実行する

絶対パスを使用してパラメータとしてバイナリを実行する

これは組み込みLinuxシステムなので、状況は少し異なります。絶対パスを使用してパラメータを含むバイナリを実行しようとしても機能しません。たとえば、フォルダでバイナリを実行している場合は、バイナリがフォルダにあり、/home/root/test folder次を実行します。

root@user:~/test# ./mybinary 1  2

問題なく動作します。しかし、以下はうまくいきません。パラメータを理解できないようです。

root@user:~# /home/root/test/mybinary 1 2

crontab最後に、このバイナリを実行するために絶対パスを使用して呼び出したいと思います。

答え1

プログラムが特定のディレクトリから起動する必要がある場合(相対パスを使用してそのディレクトリから一部のファイルを読み込んでいるため)、まずディレクトリを変更します。

cd /home/root/test; mybinary 1 2

完了したら、別のCDを追加して再度変更できます。

cd /home/root/test; mybinary 1 2; cd - 

後者はcrontabで実行している場合は冗長ですが、この場合は2つのコマンドを1つにまとめる必要があります。

(cd /home/root/test; mybinary 1 2)

この目的のために別々のスクリプトを作成するのは過度に設計されているようです。

crontabのコメントを忘れないでください。プログラムの作成者の場合は、固定構成ファイル(たとえば、//.mybinaryrcや~/.mybinary.confなど)から読み取ったり呼び出すことができるように、ファイルを見つけるディレクトリスイッチを提供する必要があります。そのように:

 mybinary --startdir ~/home/root/test 1 2 

関連情報