autofs nfs 공유에 있는 rc.local에서 스크립트를 실행합니다.

autofs nfs 공유에 있는 rc.local에서 스크립트를 실행합니다.

파일 서버에서 워크스테이션으로 일부 nfs 내보내기가 마운트되었습니다. 워크스테이션은 ubuntustudio 64비트 14.04입니다.

최대한 투명하게 설치하기 위해 파일에 다음을 삽입했습니다..bashrc

SG=sg
mount | grep $SG &> /dev/null 
if [ $? -eq 1 ] ; then
        sudo mount -o vers=3 fileserver:/nfs/home/nass ~/$SG
fi

그래서 기본적으로 첫 번째 로그인 셸이 시작될 때 폴더를 마운트합니다. 컴퓨터에 로그인하여 터미널을 열면 정상적으로 작동합니다. 이는 제가 일반적으로 수행하는 작업입니다.

시작하는 동안 이 설치가 자동으로 수행되기를 원합니다. 확실한 선택은 위의 코드 조각을 /etc/rc.local.

그런 다음 스크립트를 실행하는 명령을 추가합니다. 단, 루트가 아닌 사용자로 실행하고 싶습니다.

/home/nass/audio_setup/scripts/start_audio 2>&1 | tee -a  /tmp/audio.log

audio.log하지만 파일에서 볼 수 있듯이

/etc/rc.local: 22: /etc/rc.local: /home/nass/audio_setup/scripts/start_audio: not found

왜 이런 일이 발생합니까? 내가 무엇을 놓치고 있나요?

답변1

/etc/fstab스크립트를 사용하여 실행하는 대신 마운트 명령을 추가할 수 있습니까 ? 두 번째 부분의 경우 rc.local은 기본적으로 루트로 실행되므로 nass로 실행하는 단계를 수행하지 않으면 NFS 공유가 /root/sg로 마운트됩니다. rc.local이 아닌 다른 사용자로 실행하려면 다음과 같이 해야 합니다.

su nass -c '/home/nass/audio_setup/scripts/start_audio'

관련 정보