我想在我的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
并且脚本在正确引导后写入文件。我有另一个问题,为什么我的&>
原始脚本无法正常工作,但如果从命令行运行它仍然有效。
答案 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
重新启动,下次登录时应运行脚本。