Answers:
您可以将这两个程序添加到rc.local文件中。这将在启动时运行它们。可以在http://www.raspberrypi.org/documentation/linux/usage/rc-local.md中找到更多信息。
/path/to/somescript.sh &
至rc.local
,然后在脚本中添加,while ! ping -c 1 -W 1 8.8.8.8; do sleep 1; done;
然后再启动程序。
rc.local
事先运行sudo ,就无法实现对文件的写访问。你有什么建议?
Xer0FyT的答案可能是在PI上自动启动程序的最简单方法。但是,一旦启动的程序由于某种原因而崩溃,因为没有进程监视,它将无法重新启动,就会出现问题。我个人建议使用daemontools代替。设置非常简单(并包含在Raspbian中)。基本上,您将创建一个服务目录,其中包含run
启动程序的Shell脚本。然后,daemontools将确保您的程序由于任何原因崩溃时已启动和重新启动。
设置daemontools非常简单。只是
apt-get install daemontools daemontools-run
然后创建包含可执行运行脚本的服务目录:
# create the service directory
mkdir -p /service/my-service
# create the run script
cat > /service/my-service/run <<EOF
#!/bin/sh
echo "I'm an example service executed by daemontools"
sleep 1
# Replace those 2 lines with a real call to your program like this:
# exec /my/program.py --arguments
EOF
# make it executable
chmod 755 /service/my-service/run
查看/service/my-service/run
并编辑它,以便它启动您自己的程序,而不是运行echo
。完成后,将该目录符号链接到/etc/service
daemontools中,以便自动(重新)启动该目录:
cd /etc/service
ln -s /service/my-service .
大约5秒钟后,您的程序应运行。您可以使用以下方式启动/停止它
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
也可以登录到(例如)syslog。因此,程序的输出不会丢失。我在这里写了一篇更完整的博客文章:https : //info-beamer.com/blog/running-info-beamer-in-production
关闭LXSession配置应用程序并重新启动pi
您的Java应用程序应在重新启动后运行
您可能已经cron
安装了PI的一些内部管理任务。
搜索man 5 crontab
了@reboot
。
您可能需要研究service
。您可以创建一个初始化脚本,该脚本是系统初始化的一部分,并将其置于适当的运行级别。
运行man service
。
这是创建初始化脚本的指南:http : //www.novell.com/coolsolutions/feature/15380.html
systemd
大多数Linux发行版(包括Raspbian)的发展步履蹒跚,如果OP更新其系统,以便从sysV接手,则此答案将需要更新init
... 8
只需点击此链接。
假设您在桌面上有test.txt,则示例可能是:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
@leafpad /home/pi/Desktop/test.txt
而且有效!
sudo
在rc.local
本身。它在引导时以root特权运行。&
除非您的程序快速执行某些操作然后退出,否则请务必注意有关使用的部分。