파일에 로그를 쓰도록 변경하면 시작 시 실행 파일이 실행되지 않습니다.

파일에 로그를 쓰도록 변경하면 시작 시 실행 파일이 실행되지 않습니다.

시작 시 콘솔을 통해 로그를 인쇄하는 실행 파일을 실행 printf하고 서비스가 실행 중일 때 출력에서 ​​실행 중인 바이너리를 볼 수 있지만 ps더 이상 콘솔에 인쇄되지 않습니다.

그래서 로그를 보기 위해 파일을 생성하도록 애플리케이션을 변경했는데, 변경한 후 이 실행 파일을 실행해야 하는 서비스가 실행되고 있음에도 불구하고 시작 시 실행 파일이 실행되지 않는 것 같습니다.

파일 생성 및 쓰기는 시작 시가 아닌 수동으로 실행할 때 완벽하게 작동합니다.

  1. 시작 시 실행되는 실행 파일에 대해 콘솔에 대한 printf 로깅을 활성화하려면 어떻게 해야 합니까? dprintf파일을 쓰는 데 사용하고 있어요
  2. 서비스가 실행 중인데도 시작 시 파일을 생성하고 작성해야 하는 실행 파일이 실행되지 않는 이유는 무엇입니까?

샘플 테스트를 수행했습니다. 루프가 있고 실행 파일이 푸시되면 시작 시 실행되지만 루프가 주석 처리되면 실행 파일이 더 이상 실행되지 않습니다.

#define file1        "file1"
#define file2        "file2"
int CreateFiles()
{
    dprintf (1, "Creating files");
    int fd = open (file1, O_WRONLY | O_CREAT);
    if (fd < 0)
    {
        dprintf (1, "Failed to open the file descriptor");
        return -1;
    }

    fd = open (file2, O_WRONLY | O_CREAT);
    if (fd < 0)
    {
        dprintf (1, "Failed to open the file descriptor");
        return -1;
    }
  return 1;
}

int main(void)
{
   while(1);
   CreateFiles();
}

관련 정보