문제가 있습니다. 저는 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/ 디렉토리에서 실행하려면 어떻게 해야 합니까?