프로세스가 입력을 읽는 파일 설명자를 찾는 방법은 무엇입니까?
배경
나는베르테르Alpine 컨테이너(veet로 발음) 서버에서 개발하는 경우. 현재 저는 컨테이너에 로그인하고 vite --host '0.0.0.0' --port 3000
콘솔을 인계받아 대화형 입력을 허용하는 명령을 사용하여 Vite를 수동으로 시작합니다. 따라서 파일 변경 사항이 컨테이너의 Docker 볼륨 바인드 마운트에 등록되지 않으면(Windows는 바보입니다) 서버를 다시 시작하는 등의 작업을 수행할 수 있습니다.
질문
컨테이너가 시작될 때 이 명령을 실행하도록 하고 싶습니다. 이렇게 하면 Docker가 명령을 전달하지 않기 때문에 명령을 보낼 수 없게 됩니다.
그런 다음 실행되는 스크립트를 만들었습니다 pnpm run dev &
. Vite 서버의 프로세스 ID를 얻은 다음 해당 파일 설명자에 입력을 보낼 수 있다고 생각했지만 echo "h" > /proc/17/fd/0
아무 일도 일어나지 않았습니다. 나는 또한 PID 33을 시도했다. 입력 내용을 잘못된 위치로 보내고 있는 것 같습니다. 하지만 올바른 파일 설명자가 있는 경우 어떻게 찾을 수 있습니까?
컨테이너로 PS 출력
PID USER TIME COMMAND
1 root 0:00 node /usr/local/bin/pnpm run dev
17 root 0:00 node /root/task-01/node_modules/.bin/../vite/bin/vite.js --host 0.0.0.0 --port 3000
33 root 0:00 /root/task-01/node_modules/.pnpm/@[email protected]/node_modules/@esbuild/linux-x64/bin/esbuild --service=0.20.
39 root 0:00 sh
47 root 0:00 ps
면책 조항: 파일이 변경될 때 더 이상 서버를 수동으로 다시 시작할 필요가 없기 때문에 이 문제는 Docker watch를 사용하여 해결해야 하지만 다른 경우에도 유용할 수 있으므로 이것이 가능한지 확인하고 싶었습니다. 또한 제가 루트로 실행하고 있다는 사실을 부끄러워하지 마십시오. 저는 일반적으로 그렇게 하지 않습니다.