如何在启动时运行脚本的差异

Seb*_*ian 3 startup bash scripts

我已经阅读了有关的各种问题,how to run script at startup但我不太确定有什么区别,以及没有 GUI 的实际正确方法是什么。

  • /etc/rc.local
  • 使用 cron 作业 @reboot
  • ~/.profile
  • /.bash_profile
  • /.bash_login

我需要在启动时运行的示例

  • apt-get update
  • 设置一些权限
  • 设置显示亮度
  • 打开数字锁定
  • 设置触摸板
  • 运行一些应用程序
  • 以 root 身份运行一些脚本(sudo即使主脚本已经以 root 身份执行,我是否应该调用它们?)
  • 在没有 root 的情况下运行一些脚本

最好有一个单一的脚本来处理一个文件中的所有这些事情。如何正确操作?

Ser*_*nyy 5

~/.profile, /.bash_profile, 和/.bash_login更适合定义环境变量和设置环境,而不是运行脚本。我不会推荐这些。

/etc/rc.local可以用于此,但请记住它会在 GUI 启动之前启动。除非是针对仅向 GUI 发送通知的脚本。请注意,您需要从/etc/rc.local 格式中调用您的脚本/full/path/to/script &&以避免阻止您可能在那里执行的其他脚本)。您还需要export DISPLAY=:0在脚本本身或/etc/rc.local. 需要 GUI 的应用程序将需要此变量存在。与cron job using @reboot.

如果您想在 GUI 登录时运行脚本,正确的方法是为.desktop文件~/.config/autostart/夹中的每个脚本创建文件。您可以手动完成,也可以使用为您做完全相同的事情的启动应用程序应用程序。只需打开 Unity Dash 并输入“启动应用程序”

示例概览

  • apt-get update不需要图形用户界面,只需要网络。/etc/rc.local这个没问题。
  • set some permissions ,这也不需要GUI,只需使用 /etc/rc.local
  • set display brightness 也不需要 GUI,但可能需要 root 权限。如果您想在登录前更改它,则需要写入一个特殊文件。请参阅关于此主题的其他帖子
  • turn numlock on 可能也不需要 GUI
  • setup touchpad 根据您的方法,可能需要也可能不需要 GUI
  • run some apps 如果它们是 GUI 应用程序,则需要从我上面描述的启动应用程序启动。
  • run some scripts as root 您可以使用/etc/rc.localcron为这些。出于多种原因,以 root 身份运行 GUI 应用程序是个坏主意,因此请避免这种情况。
  • run some scripts without root 使用启动应用程序方法。