화면을 통해 실행중인 대화식 명령에 입력을 보내려고합니다. 여기에 위의 명령은 화면 분리 모드에서 대화 형 psql 프로그램을 실행 내 초기 명령readreg 및 붙여 넣기를 통해 분리 된 '화면'에 대한 입력 전송시 문제가 발생했습니다.
screen -L -c ./customrc -S psql -d -m /opt/PostgreSQL/9.0/bin/psql
입니다. customrc 내가 화면
screen -S psql -X readreg p psqlcommands.sql
screen -S psql -X paste p
문제로 실행 PSQL에 입력을 보내 두 명령을 다음 사용하고 있습니다 (I 폴링에 의해 다른 프로세스에서 읽습니다)의 출력에 대한 로그 파일
을 정의하는 데 사용됩니다 적어도 한 번 화면을 다시 부착하지 않으면 위의 명령이 작동하지 않는다는 것입니다. 화면을 연결하고 분리하면 위의 명령이 예상대로 작동합니다. 백그라운드 자바 프로세스를 통해 이러한 명령을 실행해야하므로 대화 형 셸 (bash)을 사용할 수 없습니다. 내 목표는 대화 형 모드에서 psql을 실행하고 입력을 전달하고 로그 파일을 통해 출력을 캡처하는 것입니다.
지금까지 xterm (또는 konsole 또는 gnome-terminal)을 통해 첨부 모드에서 화면을 실행하려고 시도했지만 readreg/paste를 사용하여 분리했지만 xterm을 프로덕션 환경에서 사용할 수 없다는 것을 알고 있습니다. 또한/proc/fd/0 출력을 보내려고했지만 키보드에서 '엔터'를 에뮬레이션 할 수 없습니다 (나는 psql에서 받아 들여지도록 출력을 첨부하고 눌러야합니다). 파이프와 FIFO가 도움이 될지도 모르겠지만 screen과 psql을 사용하여 진행하는 방법을 알 수는 없습니다.
추가 힌트 또는 해결 방법을 알려드립니다.
는우스만을 주셔서 감사합니다.
서브 쉘에서'true'를 실행할 필요가 없습니다. 'true'가 정상적으로 작동합니다. –
하위 쉘을 통해 실행하지 않으면 일종의 구문 오류가 발생합니다. –