>

자체를 죽이는 스크립트에서 usbstick을 마운트 해제하는 방법

스틱에서 스크립트를 실행하고 있기 때문에 항상 오류가 있기 때문에 마운트를 해제 할 수는 없습니다 : 장치 또는 리소스 사용 중입니다. 가장 쉬운 방법은 무엇입니까? 스크립트를 죽이기 직전에 스크립트를 통해 컴퓨터에서 스크립트를 실행해야합니까?

어떻게하면 되나요?

  • 답변 # 1

    파일 시스템을 사용 중이라면 마운트 해제 할 수 없습니다.

    시도 할 수 있습니다

    (echo fuser -ku /dev/xxx ; echo umount/dev/xxx ) |
    at now +5 sec
    exit
    
    

    이 코드는 물론 USB 장치에서 실행할 수 없습니다.

    파이프 기호 ( | )는 행의 마지막 문자 여야합니다.

    xxx 대신 사용할 것을 알고 있다고 가정합니다.

  • 답변 # 2

    umount 실행  이동식 드라이브에서 파일을 열지 않은 프로세스의 명령. 특히, 이것은 드라이브의 쉘 스크립트가 아니어야합니다. sh 에 전달 된 스크립트  커맨드 라인은 괜찮습니다. 드라이브에 저장된 스크립트가 종료되어야합니다. 쉬운 방법은 exec 를 사용하는 것입니다  마운트 해제 순서를 실행하는 쉘로 스크립트를 실행하는 쉘을 대체합니다.

    #!/bin/sh
    mount_point=$(df -P "$0" | awk 'NR==2 {print $6}')
    … # do stuff involving the files on the drive
    exec sh -c 'cd /; umount "$0"' "$mount_point"
    
    

  • 이전 빼기 기호를 tr로 바꾸는 방법
  • 다음 centos - RHEL6 복구 모드에서 루트 암호 프롬프트를 영구적으로 비활성화하는 방법