我执行它在rc.local中引用的shell脚本。该文件是git-versioned,需要更改为每个用户的相应主目录。绝对路径工作正常,但这些机器间不同。 $ HOME或〜/尚未定义,如何在启动时更改为rc.local中的主用户目录?
这是工作脚本:
CD /家庭/用户名/ rightDIR
PHP -S本地主机:8000
该脚本启动服务器,但无法迁入正确的目录:
cd $ HOME/rightDIR
PHP -S本地主机:8000
我执行它在rc.local中引用的shell脚本。该文件是git-versioned,需要更改为每个用户的相应主目录。绝对路径工作正常,但这些机器间不同。 $ HOME或〜/尚未定义,如何在启动时更改为rc.local中的主用户目录?
这是工作脚本:
CD /家庭/用户名/ rightDIR
PHP -S本地主机:8000
该脚本启动服务器,但无法迁入正确的目录:
cd $ HOME/rightDIR
PHP -S本地主机:8000
cd /home/*/rightDIR && php -S localhost:8000 &
如果只有一个用户在自己的主文件夹中有一个rightDIR
应该工作(否则,第一场比赛获胜)。
的&&
链的命令一起。如果cd
命令失败,则后面的命令将不会启动。
的&
末开始的命令在后台壳工作,使外壳可以继续并运行此行rc.local中
之后到来的任何命令。如果启动挂起无论如何,考虑增加nohup
而不是php
左侧,以便从shell中分离命令。
谁做你的“主用户”是什么意思? '$ HOME'设置和'〜'将使用'$ HOME'的电流值,但他们都将参照根用户的主目录,如'root'是执行'rc.local'用户。 – chepner
我的意思是将要登录,一旦机器启动(如我)的用户,所以也许我应该改一下:我怎么能cd到即使脚本是由根家在哪里执行不同的用户目录。 (每个系统上只有一个用户) – TheRed
再次,什么用户?机器可以有多个用户,并且在'rc.local'执行的时候,* none *都是登录的。除了'root'之外,没有任何其他尊贵用户的概念。如果有一个特定的非root用户参与启动过程,则必须在脚本中明确说明是谁。机器无法猜测*一旦启动完成后,谁将登录。 – chepner