問題があります。私は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/ディレクトリで実行するにはどうすればよいですか?