![C로 서비스 작성: 실행 중인 서비스의 매개변수를 전달하고 처리하는 방법은 무엇입니까?](https://linux55.com/image/43829/C%EB%A1%9C%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EC%9E%91%EC%84%B1%3A%20%EC%8B%A4%ED%96%89%20%EC%A4%91%EC%9D%B8%20%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9D%98%20%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%A0%84%EB%8B%AC%ED%95%98%EA%B3%A0%20%EC%B2%98%EB%A6%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
C 언어로 서비스를 작성하고 싶습니다.
이 서비스가 백그라운드에서 실행되고 일부 정보를 처리하는 동안 다른 애플리케이션이나 명령줄에서 이 서비스의 결과를 가져와야 합니다.
배경: 성능 문제로 인해 C 애플리케이션/서비스가 필요합니다. UI는 Linux의 Java 또는 C#/Mono와 같은 고급 언어로 구현됩니다. C 응용 프로그램은 기본적으로 다른 소스의 데이터를 처리합니다. UI 레이어는 결과를 얻고 사용자에게 표시하기 위해 몇 밀리초마다 반복할 수 있어야 합니다. 또한 Java 애플리케이션에서 서비스를 일시 중지/시작/구성할 수 있어야 합니다. 여기서 문제가 시작됩니다.
런타임 시 명령에 응답할 수 있도록 이 서비스를 C로 구현하려면 어떻게 해야 합니까?
고마워요, 에드워드
답변1
서비스와 해당 UI를 분리하려면 일종의산업용 컴퓨터의사소통을 가능하게 하는 메커니즘. 이들 중 몇 가지는 이미 존재하지만 이제 Linux 기반 시스템의 표준은 D-Bus입니다. 이는 D-Bus 바인딩이 있는 모든 언어(Java 및 Mono에 있음)로 작성된 클라이언트에서 C로 작성된 서비스에 액세스하는 데 사용할 수 있습니다. . 귀하의 서비스는 고객이 전화할 수 있는 D-Bus 서비스를 제공해야 합니다. D-Bus는 서비스를 자동으로 시작하는 방법도 제공합니다. 중지 및 구성을 쉽게 수행할 수 있습니다.
인간은 정보를 그렇게 빨리 처리할 수 없기 때문에 UI가 몇 밀리초마다 결과를 가져오는 것을 원하지 않습니다. 초당 25-30회의 업데이트 속도이면 충분합니다.