C로 서비스 작성: 실행 중인 서비스의 매개변수를 전달하고 처리하는 방법은 무엇입니까?

C로 서비스 작성: 실행 중인 서비스의 매개변수를 전달하고 처리하는 방법은 무엇입니까?

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회의 업데이트 속도이면 충분합니다.

관련 정보