![启动时初始化脚本中的 PATH 错误](https://linux22.com/image/628916/%E5%90%AF%E5%8A%A8%E6%97%B6%E5%88%9D%E5%A7%8B%E5%8C%96%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%9A%84%20PATH%20%E9%94%99%E8%AF%AF.png)
自从我的 Synology NAS(x86)上的系统更新后,我的启动脚本出现了一些问题。
Bash 脚本存储在 中/usr/local/etc/rc.d
。脚本肯定被执行了,因为我有一个以 root 身份运行的服务器,它启动时没有任何问题。
但是,如果我将其他服务器可执行文件放入“su”命令中以其他用户身份启动它们,则它们无法正常启动。
脚本中执行的命令如下:
su admin -c /volume1/homes/admin/subsonic/subsonic.sh
Bash 脚本运行时没有任何问题,但是脚本使用特定命令启动 java,但找不到 java 的路径。
su admin -c "screen -dmS ncdc ncdc"
在这一行,问题是系统找不到screen
的路径。如果我不su
这样启动它,它将以 root 身份运行,那么它就可以正常工作。
更新
如果我以减号开头命令,那么我也会出现这种行为:
root@schreda-NAS:~ # su - admin -c "screen -dmS test test"
-bash: screen: command not found
路径值将由 设定/etc/profile
。我不会覆盖~/.bash_profile