如何在启动时运行脚本?

如何在启动时运行脚本?

如何运行脚本自动地当 Ubuntu 启动时,所以我不必在启动后手动运行它们?

答案1

一种方法是添加 @reboot计划任务任务:

  1. 运行crontab -e将允许您编辑您的 cron。
  2. 添加如下一行:

    @reboot /path/to/script
    

    计算机启动后将执行该脚本。

答案2

取决于你需要运行什么类型的脚本。对于服务之类的,你应该使用暴发户。但对于用户脚本,这些应该由 gnome 作为会话脚本启动!请查看系统 > 首选项 > 启动应用程序。

附注:如果您需要在终端登录时运行一些脚本,您可以将它们添加到登录您的主目录中的文件。

适用于 14.04 及以上版本

一个简单的命令(不需要保持运行的命令)可以使用 Upstart 作业,例如:

start on startup
task
exec /path/to/command

将其保存在.conf文件中/etc/init(如果您需要它在系统启动时以 root 身份运行),或~/.config/upstart(如果您需要它在您登录时以您的用户身份运行)。

答案3

您可以添加命令到/etc/rc.local

sudo nano /etc/rc.local

这将以 root 身份执行命令。

要以特定用户身份执行命令,请使用sudo -i -u(-i也运行登录 shell)。例如,要建立持久 SSH 隧道,s文件myhost中的 definde如下:johndoe~/.ssh/config

sudo -i -u johndoe autossh -nNT -L 1234:localhost:1234 myhost

请注意,如果/etc/rc.local不存在(Ubuntu 16.04 版以上版本),则需要添加舍邦线在顶部(例如#!/bin/bash),并确保该文件是可执行的:

sudo chmod a+x /etc/rc.local

答案4

自动运行命令有不同的方法:

  1. 暴发户system 将执行在目录中找到配置的所有脚本/etc/init。这些脚本将在系统启动时运行(或响应某些事件,例如关机请求),因此是运行不与用户交互的命令的地方;所有服务器都使用此机制启动。

    您可以在以下位置找到可读的介绍:http://upstart.ubuntu.com/getting-started.html手册页man 5 initman 8 init提供完整的详细信息。

  2. .gnomerc每次登录 GNOME 会话时,都会自动执行主目录中的shell 脚本。您可以将任意命令放入其中;您在该脚本中设置的环境变量将被您在会话中运行的任何程序看到。

    请注意,会话在.gnomerc脚本完成之前不会启动;因此,如果您想自动启动一些长时间运行的程序,则需要附加&到程序调用,以便将其与正在运行的 shell 分离。

  3. 菜单选项系统 -> 偏好设置 -> 启动应用程序允许您定义图形会话启动时应启动哪些应用程序(Ubuntu 预定义了相当多的应用程序),并根据您的喜好添加或删除它们。这几乎与脚本的目的和范围相同.gnomerc,只是您不需要知道sh语法(但您也不能使用任何sh编程结构)。

相关内容