如何在启动时运行脚本?

如何在启动时运行脚本?

我的文件夹中有一个脚本:

/path/to/my/script.sh

我需要此脚本在系统每次启动时运行(即使没有人登录系统)。我需要做什么才能实现这一点?

答案1

您需要 root 权限才能执行以下任何操作。要获取 root 权限,请打开终端并运行命令

sudo -i

命令提示符将变为“#”,表示终端会话具有 root 权限。

替代方案 #1:添加命令/etc/rc.local

vi /etc/rc.local

内容如下:

# This script is executed at the end of each multiuser runlevel
/path/to/my/script.sh || exit 1   # Added by me
exit 0

替代方案 #2:添加 Upstart 作业(适用于 15.04 之前的系统)(不推荐)

创建 /etc/init/myjob.conf

vi /etc/init/myjob.conf

内容如下

description     "my job"
start on startup
task
exec /path/to/my/script.sh

官方声明新贵网站-> “项目仅处于维护模式。没有开发任何新功能,一般建议是转移到另一个最小初始化系统或 systemd。”

替代方案 #3:添加初始化脚本(已过时)

在 中创建一个新脚本/etc/init.d/myscript

vi /etc/init.d/myscript

(显然它不必被称为“myscript”。)在这个脚本中,您可以做任何您想做的事情。也许只需运行您提到的脚本即可。

#!/bin/sh
/path/to/my/script.sh

使其可执行。

chmod ugo+x /etc/init.d/myscript

配置 init 系统以在启动时运行此脚本。

update-rc.d myscript defaults

答案2

您不需要 root 权限,甚至不需要登录。

您可以编辑 crontab ( crontab -e) 并创建如下条目:

@reboot /path/to/script.sh

这样,您就可以以普通用户的身份运行它。@reboot只是意味着它在计算机启动时运行(不一定是在重新启动时运行)。

PS:关于评论说这个不能正常使用

有人说这种方法不适用于基于 Debian 的发行版,例如 Ubuntu。我个人在 Ubuntu 和 Mint 上都成功使用过这种方法。不过,有几点需要考虑。

这些@reboot作业将在 cron 守护程序启动时运行。我发现在基于 Debian 的发行版中,这可能在/home分区挂载之前发生。如果您运行的脚本位于您的主文件夹中,它将失败。

此外,这不仅限于基于 Debian 的发行版,但如果您的主文件夹已加密,则可能要等到您登录后才能解密。可能没有办法解决这个问题。

此外,您的网络接口可能尚未启动,如果该命令需要互联网访问,则可能会失败。

最后,再次强调,这不仅限于基于 Debian 的发行版,但 cron 运行的环境比 shell 运行的环境要有限得多。特别是,变量的PATH路径要少得多。如果正在运行的命令位于类似 的位置,则可能找不到该命令,该命令$HOME/.local/bin可能位于PATH您的 shell 会话中,但不在 下cron。甚至可能正在运行的命令依赖于 中未设置的某些环境变量cron

因此,有很多原因导致您的命令需要在 cron 下运行,但这并不是因为它@reboot在您的发行版上不起作用。

答案3

从终端

  1. newshell.sh.desktop在文件夹中创建文件~/.config/autostart

    gedit ~/.config/autostart/newshell.sh.desktop
    
  2. 更改ExecNameComment并添加到文件:第一行

     [Desktop Entry]
     Type=Application
     Exec=/full/link/to/your/newshell.sh
     Name=newshell
     Comment=whatever you want
    
  3. 节省

或者

您可以从 GUI 进行操作:

  1. 在 Ubuntu 14.04 中运行“启动应用程序”工具,只需在搜索框中输入它即可。
  2. 添加相同ExecNameComment

答案4

只需编辑 rc.localnano /etc/init.d/rc.local如下:

/path/to/my/script.sh || exit 1 
exit 0

相关内容