【问题标题】:How to run a program on startup in Debian如何在 Debian 中启动时运行程序
【发布时间】:2016-02-20 22:48:29
【问题描述】:

我正在尝试运行我在 Raberry Pi 2 上启动时制作的程序。它正在运行 Debian (Jessie),但它似乎不起作用。我尝试遵循本指南:Debian: Running Scripts on StartUp 并创建系统链接,但似乎没有任何效果。该程序在我不在启动时运行时有效。代码如下:

#!/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...

最后一个命令有效,所以我没有包含整行,因为它是一个长行。

非常感谢任何帮助!

【问题讨论】:

  • 您可以使用update-rc.d 生成到适当运行级别的符号链接(假设 Sys V init),但是使用 Systemd 整个过程是不同的,请参阅answer 了解如何编写 systemd启动脚本
  • 我用过那个命令,还是不行。我什至尝试通过ls 创建一个
  • 你是如何使用命令的?如果你没有指定正确的运行级别,它将不会启动,如果应用程序依赖于其他东西来启动,你必须确保依赖关系在它之前启动
  • 链接到我遵循的指南:stackoverflow.com/questions/8837680/…
  • 我把它链接到 rc2.d

标签: linux raspberry-pi debian startup


【解决方案1】:

为程序创建一个桌面条目,并将其放置在~/.config/autostart

作为启动 Safe Eyes 程序的示例,将其设置为 ~/.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

【讨论】:

  • 是否可以将此方法用于需要sudo权限的脚本?
  • @GabrielSandoval 是的,这是可能的。
  • 这会在您登录桌面时运行程序,而不是在计算机启动时运行。
【解决方案2】:

另一种方式:

sudo crontab -e

并添加

@reboot file_you_want_to_run &

【讨论】:

  • 不知道为什么,但是,这是不可靠的,但是,大部分时间都有效。不确定这是在哪个运行级别执行的。
  • 不需要在后台运行脚本。 cron 根据定义异步运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 2021-01-26
  • 1970-01-01
相关资源
最近更新 更多