由于Synology NAS(x86)上的系统更新,我的启动脚本有一些问题。
Bash脚本存储在/usr/local/etc/rc.d 。 脚本是肯定执行的,因为我有一个运行在根上的服务器,它的启动没有任何问题。
但是如果我将其他服务器可执行文件放在“su”命令中,以便与其他用户启动,则其他服务器可执行文件无法正常启动。
在脚本中执行的命令如下:
su admin -c /volume1/homes/admin/subsonic/subsonic.sh
Bash脚本运行时没有任何问题,但脚本启动java与特定的命令,那里找不到java的path。
su admin -c "screen -dmS ncdc ncdc"
在这一行上,问题是系统找不到screen的path。 如果我没有su启动它,以便它将作为根运行,那么它的工作原理。
UPDATE
如果我用减号开始命令,那么我也会得到这样的行为:
root@schreda-NAS:~ # su - admin -c "screen -dmS test test" -bash: screen: command not found
path值将由/etc/profile 。 我不覆盖~/.bash_profile的path