首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动时自动运行脚本:脚本不能正常工作

启动时自动运行脚本:脚本不能正常工作
EN

Stack Overflow用户
提问于 2014-12-18 06:20:17
回答 3查看 6K关注 0票数 2

我想运行一个bash脚本启动我的Parallella板,其中有Ubuntu。我搜索了一下,在这里找到了说明:

我的bash脚本是test.sh,它只有一行:

代码语言:javascript
复制
echo "Hello World" &> /home/qsp/WIP/test/hello.txt

1)我尝试的第一种方法是在/etc/rc.local中添加到脚本的aboslute路径:

代码语言:javascript
复制
/home/qsp/WIP/test/test.sh

2)我尝试的第二种方法是遵循上述公认的答案。

代码语言:javascript
复制
sudo mv test.sh /etc/init.d/
sudo update-rc.d test.sh defaults 

在这两种情况下,脚本都是在启动后执行的,并且在文件夹中创建了一个文件hello.txt。但是,文件的内容是空的(所有者是根用户)。我想知道我是不是错过了什么。谢谢。

======UPDATE=======

根据Skynet的回答,我将脚本更改为:

代码语言:javascript
复制
echo "Hello World" | tee /home/qsp/WIP/test/hello.txt

并且脚本在引导正确后写入文件。我还有另一个问题,为什么我原来的&>脚本不能工作,尽管如果从命令行运行,它仍然有效。

EN

回答 3

Stack Overflow用户

发布于 2014-12-18 06:27:54

您应该使用init脚本样式,正如第一个SO问题所引用的那样。就像这样:

代码语言:javascript
复制
case "$1" in
start)
    #startup code
    ;;
stop)
    #stop code
    ;;
restart)
    #restart code
    ;;
esac

还请看一下https://github.com/fhd/init-script-template/blob/master/template

票数 3
EN

Stack Overflow用户

发布于 2014-12-18 06:31:22

编辑/etc/rc.local并添加命令之后,

检查您的脚本必须始终以退出0结尾。

还确保通过使用chmod命令使其可执行。

代码语言:javascript
复制
chmod 777 test.sh

将输出行更改为

代码语言:javascript
复制
echo "Hello World" | tee /home/qsp/WIP/test/hello.txt
票数 2
EN

Stack Overflow用户

发布于 2014-12-18 06:54:52

创建.desktop文件并将系统配置为在登录时自动启动。

创建.desktop文件如下所示

代码语言:javascript
复制
    $ vim ~/.config/autostart/test_script.desktop

添加以下信息

代码语言:javascript
复制
   [Desktop Entry]
   Type=Application
   Name=Test script
   Exec=~/test.sh
   X-GNOME-Autostart-enabled=true

注意,~/test.sh应该指向您创建的脚本。省省吧。

使其可执行:

$ chmod o+x ~/..config/autostart/test_script.桌面

重新启动,下一次登录时,您的脚本应该运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27540343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档