我有一个/etc/init.d脚本来启动我的etc服务器。我使它可执行,并添加了它(update-rc.d webserver defaults)。当我从命令行执行脚本时,它工作正常(./webserver)。
但是在重新启动我的系统之后,我的not服务器就没有运行了。
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
cd ~/projects/webserver
./.build/debug/webserver &
exit 0用户目录有问题吗(我以root身份登录)?
发布于 2016-08-25 17:08:01
您想要的倾斜展开的类型是参照shell的当前用户执行的。例如,当您以根用户身份登录时,~是/root。如果脚本在登录前运行,则无法将~展开到所需的目录。
使用脚本中文件的完整路径。
对于将来的参考,这里是在脚本中使用倾斜扩展的一些有用的例子。
发布于 2016-08-25 15:08:29
你的剧本有个问题。在编写脚本时最好使用aboslute路径而不是tilde(~)。这可能是导致脚本无法使用的罪魁祸首。如果您想要更改dir,给出完整的路径,比如/home/script/project/而不是~/projects,.It会带来更大的不同。
要达到你的目标,有几种方法。作为一名高级系统工程师,我使用不同的方法来实现这些事情,这取决于情况。在这里,我列举了许多方法。
( 1)基本的方法是你打成平局,但没有成功。
sudo su
chmod a+x /etc/init.d/webserver
update-rc.d webserver defaults2)在重新启动时添加一个cron作业。
sudo su
crontab -e
@reboot /home/path/to/script.sh3)在最后一行退出0之前将命令添加到rc.local文件中。
sudo su
nano /etc/rc.local
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
cd /absolute/path/projects/webserver
./.build/debug/webserver &https://askubuntu.com/questions/816761
复制相似问题