启动时自动运行脚本:脚本无法正常运行

时间:2014-12-18 06:20:18

标签: linux bash ubuntu startup autorun

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

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

echo "Hello World" &> /home/qsp/WIP/test/hello.txt

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

/home/qsp/WIP/test/test.sh

2)我尝试的第二种方式是遵循上面接受的答案。

sudo mv test.sh /etc/init.d/
sudo update-rc.d test.sh defaults 

在这两种情况下,脚本都是在启动后执行的,并且文件夹中创建了一个文件hello.txt。但是,文件的内容为空(并且所有者是root)。我想知道我是否遗漏了任何东西。谢谢。

======更新=======

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

echo "Hello World" | tee /home/qsp/WIP/test/hello.txt

并且脚本在正确引导后写入文件。我有另一个问题,为什么我的&>原始脚本无法正常工作,但如果从命令行运行它仍然有效。

3 个答案:

答案 0 :(得分:3)

你应该按照第一个SO问题所引用的init脚本样式来创建它。像这样:

case "$1" in
start)
    #startup code
    ;;
stop)
    #stop code
    ;;
restart)
    #restart code
    ;;
esac

另请查看https://github.com/fhd/init-script-template/blob/master/template

答案 1 :(得分:2)

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

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

还要确保使用chmod命令

使其可执行
chmod 777 test.sh

将输出行更改为

echo "Hello World" | tee /home/qsp/WIP/test/hello.txt

答案 2 :(得分:1)

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

创建.desktop文件,如下所示

    $ vim ~/.config/autostart/test_script.desktop

添加以下信息

   [Desktop Entry]
   Type=Application
   Name=Test script
   Exec=~/test.sh
   X-GNOME-Autostart-enabled=true

请注意〜/ test.sh应指向您创建的脚本。保存它。

使其可执行:

$ chmod o + x~ / .config / autostart / test_script.desktop

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