때때로 실행 중인 프로세스의 표준 입력에 쓰기

때때로 실행 중인 프로세스의 표준 입력에 쓰기

때로는 netcat. 그런 다음 Netcat은 이를 다른 netcat 프로세스(내 컴퓨터나 로컬 네트워크)로 보내지만 지금은 첫 번째 프로세스에만 관심이 있습니다.

예를 들어, 키를 누르면 사용자가 프롬프트에 값을 입력하고 해당 값을 프로세스에 보냅니다.


값이 주어지면 $text,netcat그것을 수신하고 일반 표준 입력처럼 처리하도록 하려면 어떻게 보내야 합니까 ?


다음을 시도했지만 그 중 아무 것도 작동하지 않습니다.

  • echo $text >> /proc/`pidof netcat`/fd/0. 이는 터미널
    에 기록되지만 netcat은 이를 수신하지 않습니다. $text(에 따르면이 문제)

    • 나는 또한 다음과 같이 netcat을 시작해 보았습니다. 그리고 프로세스를 cat | netcat ...에코합니다 .cat
  • mkfifo pipe; netcat <mypipe
    mypipe이제 다른 netcat 프로세스가 연결되면 지금까지 내가 보낸 내용을 받습니다.
    추가 쓰기는 mypipe효과가 없습니다.

    • 또한 다른 결과로 이것을 시도했습니다 cat mypipe | netcat ...
      . 첫 번째 쓰기는 mypipe다른 netcat 프로세스로 전송되지만 두 번째 echo 123 >mypipe시도는 중단됩니다. 프롬프트가 표시되지 않고 값을 입력할 수 있지만 아무 일도 일어나지 않습니다.

나는 명명된 파이프에 대해 배우고 있기 때문에 올바르게 사용하지 못할 수도 있습니다.
하지만 "흐름 파일"이나 이와 유사한 것을 찾고 있습니다.말하다나에게 그것은 작업에 적합한 도구입니다.어떻게).

대안에 대한 나의 첫 번째 시도(나는 이 작업을서버 장애)를 사용해야 하는데 screen이것이 내 문제에는 과잉이라고 생각합니다.

명명된 파이프 문제그런 것 같다echo문자열 뒤에 EOF를 보냅니다. 그러면 netcat파이프에서 읽는 것이 중지되므로 더 이상 메시지를 보낼 수 없습니다(할 수는 있지만 netcat은 메시지를 읽지 않습니다). 이것이 나를 만든다나중에 EOF를 발생시키지 않고 프로세스의 표준 입력으로 데이터를 파이프합니다., 하지만 제공된 솔루션을 제 경우에 어떻게 적용해야 할지 모르겠습니다.

나는 가능한 모든 파이프/고양이/에코 조합을 다루었다고 생각했지만 소용이 없었으므로 남은 것은 unix.se뿐입니다 :)

미리 감사드립니다!

관련 정보