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/ 디렉토리에서 실행하려면 어떻게 해야 합니까?

관련 정보