소켓을 통한 연결을 기다리는 무한 루프를 실행하는 C 프로그램을 성공적으로 만들었습니다. 데몬으로 만들고 시작하고 중지 할 수 있습니다. 내가 어떻게 해? 백그라운드에서 코드를 실행하려면 어떻게해야합니까? 데몬이되기 위해 필요한C의 데몬 소켓 서버
답변
고전 작업은 다음과 같습니다
- 변경 루트에 작업 디렉토리, 그래서 다른 마운트를 고정하지 않는 데몬;
fork()
으로 전화를 걸어 부모 프로세스를 종료해야 프로세스가 프로세스 그룹 리더가되지 않습니다.- 표준 입력, 표준 출력 및 표준 오류를
/dev/null
으로 리디렉션합니다. - 제어 터미널이없는 새 세션의 세션 그룹 리더로 프로세스를 호출하려면
setsid()
으로 전화하십시오. 오류 검사없이
: Linux에서
chdir("/);
if (fork() > 0)
_exit();
close(0);
close(1);
close(2);
open("/dev/null", O_RDWR);
dup(0);
dup(0);
setsid();
는 glibc는 다음 작업을 할 수있는 daemon()
도우미 기능을 제공합니다.
데몬()은 이식성이 없어도 비 -Linux 시스템에도 존재합니다. –
이 응답은 SIGHUP을 무시하지 않고 setsid를 호출하여 상위 세션이 _exit (2)에 대한 그룹 리더의 호출이 하위 프로세스 종료를 막지 못하도록합니다. –
c 프로그램을 데몬으로 실행하려면 다음 단계를 수행해야합니다.
이것이 잘못되었습니다 : HOME 대신 /로 변경하십시오. umask는 필요하지 않습니다. –
- 1. C의 큐 소켓 연결
- 2. C의 양방향 UDP 소켓
- 3. 데몬 서비스로 안드로이드 내부 소켓 연결이 실패합니다.
- 4. 요청을 위해 백그라운드에서 수신 대기하는 데몬 소켓
- 5. 서버 (소켓)
- 6. 기기 iOS 웹 소켓 서버
- 7. 닫기 소켓/서버 소켓 구현
- 8. C의 서버 클라이언트 프로그램
- 9. C의 UDP 소켓 - 설정이 잘못 되었습니까?
- 10. C의 소켓 프로그램을 컴파일 할 수 없다
- 11. C의 UDP 소켓 : client1에서 server2로 클라이언트
- 12. 파이썬 데몬 + 프로세스 간 통신 + 웹 서버
- 13. 단일 스레드 서버/데몬 (Python) 구현
- 14. 는 자바 이중 수출 서버 데몬
- 15. 데몬 서버 또는 쉘 명령을 실행 하시겠습니까?
- 16. Perl에서 TCP 서버 데몬 프로세스를 만들려면 어떻게해야합니까?
- 17. 다중 스레드/분기 서버 데몬 용 모델
- 18. Silverlight 서버 소켓
- 19. Java 소켓 서버 차단
- 20. 영구 PHP 소켓 서버
- 21. 자바 클라이언트/서버 소켓
- 22. C# 소켓 서버 포트
- 23. PHP 소켓 서버
- 24. Android 서버 소켓 EADDRINUSE
- 25. 소켓 서버 연결 오류
- 26. 서블릿을 사용하는 소켓 서버
- 27. 웹 소켓 서버 연결
- 28. 웹 서버 소켓 프로그래밍
- 29. 기본 소켓 서버
- 30. 소켓 서버 스케일링
'APUE, Stevens and Rago, 13 장, 데몬 프로세스'를 읽으십시오. – mohit
어떤 OS가 실행되고 있습니까? – syler