init.d 脚本未执行

ecl*_*pse 3 init.d bash sh

我有一个 /etc/init.d 脚本来启动我的网络服务器。我使它可执行并添加了它 ( update-rc.d webserver defaults)。当我从命令行执行脚本时,它工作正常 ( ./webserver)。

但是在重新启动我的系统后,我的网络服务器没有运行。

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

cd ~/projects/webserver
./.build/debug/webserver &
exit 0
Run Code Online (Sandbox Code Playgroud)

用户目录是否有问题(我以 root 身份登录)?

Zan*_*nna 5

您想要的波浪号扩展类型是参考 shell 的当前用户执行的。例如,当您以root身份登录~/root。如果脚本在您登录之前运行,则~无法扩展到您想要的目录。

在脚本中使用文件的完整路径。

为了将来参考,这里有一些在脚本中使用波浪号扩展的有用示例