Linux 如何在Debian中启动程序

Linux 如何在Debian中启动程序,linux,raspberry-pi,debian,startup,Linux,Raspberry Pi,Debian,Startup,我正在尝试运行我在Raberry Pi 2上启动时制作的程序。它正在运行Debian(Jessie),但似乎不起作用。我试着遵循这个指南:创建一个系统链接,但似乎没有任何效果。当我不是在启动时运行该程序时,它会工作。代码如下: #!/bin/sh #/etc/init.d/StartGRIP.sh # ### BEGIN INIT INFO # Provides: StartGRIP.sh # Required-Start: $local_fs $network

我正在尝试运行我在Raberry Pi 2上启动时制作的程序。它正在运行Debian(Jessie),但似乎不起作用。我试着遵循这个指南:创建一个系统链接,但似乎没有任何效果。当我不是在启动时运行该程序时,它会工作。代码如下:

#!/bin/sh
#/etc/init.d/StartGRIP.sh
#

### BEGIN INIT INFO
# Provides:            StartGRIP.sh
# Required-Start:      $local_fs $network
# Required-Stop:       $local_fs
# Default-Start:       2 3 4 5
# Default-Stop:        0 1 6
# Short-Description:   Starts GRIP Pipeline
# Description:         During startup, runs below command and starts GRIP
### END INIT INFO
# Start processing
env LD_LIBRARY_PATH=/home/pi/vision/grip:LD_LIBRARY_PATH java -jar...
最后一个命令有效,所以我没有包括整行,因为它是一条长行

非常感谢您的帮助

替代方法:

sudo crontab -e

@reboot file_you_want_to_run &

为程序创建桌面条目,并将其放入
~/.config/autostart

作为启动safeeyes程序的示例,将其放置为
~/.config/autostart/safeeyes.desktop

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Safe Eyes
Comment=Protect your eyes from eye strain
Exec=safeeyes
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false
Categories=Utility;
[可选]设置正确的权限

  sudo chmod 644 /.config/autostart/[program-name].desktop

您可以使用生成指向相应运行级别的符号链接(这假设为Sys V init),但对于Systemd,整个过程是不同的,有关如何编写Systemd启动脚本的信息,请参阅本文。我使用了该命令,但它仍然不起作用。我甚至试着通过
ls
创建一个,你是如何使用这个命令的?如果你没有指定正确的运行级别,它将不会启动,而且如果应用程序依赖于其他东西启动,你必须确保在它链接到我遵循的指南之前启动依赖项:我将它链接到rc2.d不确定为什么,但这是不可靠的,然而,大多数情况下都有效。不确定这是在什么运行级别执行的。不需要在后台运行脚本
cron
根据定义是异步运行的。是否可以对需要sudo权限的脚本使用此方法?@GabrielSandoval是的,这是可能的。这会在您登录到桌面时运行程序,而不是在计算机启动时。