현재 열려 있는 장치 또는 이미 실행 중인 장치를 알려줄 수 있는 셸 명령이 있습니까?
예를 들어 minicom을 사용하여 장치를 열거 /dev/ttyUSB0
나 /dev/ttyS0
프로그램을 사용하여 장치를 연 후에 해당 장치가 셸에서 열렸는지 어떻게 확인할 수 있습니까? 시도했지만 dmesg
나에게는 효과가 없는 것 같습니다.
답변1
lsof <your devices>
장치를 사용하는 프로세스를 표시합니다. 또는 strace -p pid
장치를 사용해야 하는 것으로 알고 있는 프로세스를 추적하세요.
답변2
나는 lsof가 사용해야 할 도구라고 생각합니다. 프로세스에서 사용 중인 모든 파일이 나열됩니다.
프로세스 ID를 모르는 경우 퓨저를 사용할 수도 있습니다.
답변3
블록 장치
질문에 주어진 예는아니요장치를 차단하지만 질문은 일반적인 것이므로예블록 장치, 사용:
badblocks -n -c1 /dev/device-name 0 0
이렇게 하면 장치의 처음 1024바이트를 비파괴적으로 다시 쓰기를 시도합니다.
이를 사용하는 경우 다음이 표시됩니다.
/dev/device-name is apparently in use by the system; it's not safe to run badblocks!