从 rc.local 运行脚本,该脚本存在于 autofs nfs 共享上

从 rc.local 运行脚本,该脚本存在于 autofs nfs 共享上

我将一些 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

所以我基本上在第一个登录 shell 启动时挂载我的文件夹。当我登录到电脑并打开终端时,这工作得很好 - 这是我通常所做的。

我希望这种安装在启动期间自动发生,显而易见的选择是将上面的代码片段添加到/etc/rc.local.

然后我添加一个命令来运行我的脚本,但是我想以我的用户(而不是 root)身份运行它。

/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

您可以添加 mount 命令/etc/fstab而不是使用脚本来执行它吗?至于第二部分,rc.local 默认情况下由 root 运行,因此如果您不采取措施以 nass 身份运行,您将把 NFS 共享挂载为 /root/sg。如果你希望它以与 rc.local 不同的用户身份运行,你必须执行类似的操作

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

相关内容