OpenWrtのinit.dサービス作業ディレクトリ

OpenWrtのinit.dサービス作業ディレクトリ

問題があります。私はcronジョブとして実行される前に、いくつかのシェルスクリプトをランダムな間隔で呼び出す単純なCプログラムを書いています。ただし、クライアントが多く、各クライアントが同時に実行されるため、ピークを避けるために負荷を分散する必要があります。スクリプト自体は/ rootディレクトリにあり、cronによって実行されたときに処理されたすべてのファイルは同じディレクトリ(/ root /)に書き込まれます。 init.dサービスに切り替えると、このファイルは最上位ディレクトリである/に書き込まれます。

私がスクリプトと呼ぶ関数は次のとおりです。

 void execute_script(const char* url) {
    char command[MAX_URL_LENGTH + 15];
    snprintf(command, sizeof(command), "/root/updater.sh \"%s\"", url);
    system(command);
}

とinit.dスクリプト:

#!/bin/sh /etc/rc.common
 
START=80
USE_PROCD=1

start_service() {
        procd_open_instance
        procd_set_param command /usr/bin/rndupd http://URL
        procd_set_param respawn
        procd_close_instance
}

これを/root/ディレクトリで実行するにはどうすればよいですか?

ベストアンサー1

おすすめ記事