시작 시 콘솔을 통해 로그를 인쇄하는 실행 파일을 실행 printf
하고 서비스가 실행 중일 때 출력에서 실행 중인 바이너리를 볼 수 있지만 ps
더 이상 콘솔에 인쇄되지 않습니다.
그래서 로그를 보기 위해 파일을 생성하도록 애플리케이션을 변경했는데, 변경한 후 이 실행 파일을 실행해야 하는 서비스가 실행되고 있음에도 불구하고 시작 시 실행 파일이 실행되지 않는 것 같습니다.
파일 생성 및 쓰기는 시작 시가 아닌 수동으로 실행할 때 완벽하게 작동합니다.
- 시작 시 실행되는 실행 파일에 대해 콘솔에 대한 printf 로깅을 활성화하려면 어떻게 해야 합니까?
dprintf
파일을 쓰는 데 사용하고 있어요 - 서비스가 실행 중인데도 시작 시 파일을 생성하고 작성해야 하는 실행 파일이 실행되지 않는 이유는 무엇입니까?
샘플 테스트를 수행했습니다. 루프가 있고 실행 파일이 푸시되면 시작 시 실행되지만 루프가 주석 처리되면 실행 파일이 더 이상 실행되지 않습니다.
#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();
}