요구 사항 :백그라운드에서 리눅스에서 응용 프로그램을 실행하는 방법은 있지만 응용 프로그램과 상호 작용할 가능성은 있습니까?
내가 (물론 시작시) 백그라운드에서 리눅스에 내 응용 프로그램을 실행합니다.
콘솔에서 직접 start/stop/restart 명령을 호출 할 수 있기를 원합니다 (콘솔에서 직접 간단한 명령을 호출하면 /etc/init.d와 마찬가지로 간단해야합니다).
나는 상태를 호출 할 수 있기를 원하며,이 명령이 어떻게해서든지 자신이 반환 한 응용 프로그램의 실제 상태를 얻길 원합니다. 나는 String을 반환하거나 stdin을 사용하여 명령을 전송하는 몇 가지 메소드를 호출 할 수 있다고 생각했지만 아무 것도 수행하지 않았을 때 ... & 또는 start-stop-daemon을 입력하면 stdin이 분리됩니다. 응용 프로그램에 stdin을 다시 연결할 수있는 간단한 방법이 있습니까 (필자는 파이프를 만들 수있는 것을 보았습니다 만, 꽤 복잡합니다). 또는 응용 프로그램이 데몬으로 시작된 후 응용 프로그램과 통신하는 가장 좋은 방법은 무엇입니까 (소켓을 만들고 예를 들어 텔넷을 통해 연결할 수 있지만 먼저 텔넷을 시작하지 않고 콘솔에서 직접 할 수있는 더 간단한 솔루션과 가능성을 찾고 있습니다))? 이상적으로는 모든 명령을 보낼 수있는 가능성을 얻기 위해 큰 수 있지만 간단한 상태 (다시하지만 - 그것은 그 상태 somnehow를 얻을 수있는 응용 프로그램과 통신 할) 충분합니다 나는 많은 다른 대답을 발견
. 그들 중 일부는 단순히 nohup과 &을 사용하고 다른 일부는 nohup과 &은 구식이라고 말합니다. 일부 답변은 start-stop-daemon 또는 JSvc (java 용)를 사용한다고 말합니다. 그러나 그들 중 누구도 저에게이 3 가지 요구 사항을 충족시키지 못할 것 같습니다.
그래서 ... 3 가지 요구 사항을 모두 충족시키는 가장 간단한 방법은 무엇입니까?
추신. 나는 스크린을 사용하고 싶지 않다. 응용 프로그램은 Linux 데몬으로 실행해야합니다.
PPS. 응용 프로그램은 Java로 작성되었지만 Java에 국한되지 않는 일반적인 해결책을 찾고 있습니다.
IMHO 명명 된 파이프가 올바른 방법입니다. –
Stack Overflow는 프로그래밍 및 개발 관련 질문에 대한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제와는 거리가 먼 것처럼 보입니다. 도움말 센터에서 [여기에서 내가 질문 할 수있는 항목은 무엇입니까?] (http://stackoverflow.com/help/on-topic)를 참조하십시오. 아마도 [Super User] (http://superuser.com/) 나 [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/)가 더 나은 곳이 될 것입니다. 또한 [Dev Ops에 대한 질문은 어디에 게시합니까?] (http://meta.stackexchange.com/q/134306) – jww