【问题标题】:Ubuntu - Run command on start-up with "sudo"Ubuntu - 在启动时使用“sudo”运行命令
【发布时间】:2012-03-29 19:32:09
【问题描述】:

我想在 Ubuntu 启动时(在任何人登录之前)运行 sudo 命令:

sudo searchd

我该怎么做?

【问题讨论】:

    标签: linux ubuntu-11.10


    【解决方案1】:

    很好的答案。您还可以使用“Crontab”设置作业(即命令)以获得更大的灵活性(提供不同的 运行脚本、登录输出等的选项),尽管它需要更多时间 正确理解和设置:

    使用“@reboot”,您可以在启动时运行一次命令。

    结束
    $ sudo crontab -e -u root

    并在文件末尾添加一行,如下所示:

    @reboot sudo searchd
    

    【讨论】:

      【解决方案2】:

      您可以在启动结束时执行的/etc/rc.local 脚本中添加命令。

      exit 0之前写命令。在exit 0 之后写的任何东西都不会被执行。

      【讨论】:

      • 之前,当然。在exit 0 之后写的任何东西都不会被执行。
      • 嗨,我也有和 rvmsudo 命令在相同的情况下执行。该命令通常会要求输入密码。如果我把命令直接放在 /etc/rc.local 会不会有什么问题?
      • @fmonegaglia 这取决于。如果您希望启动该命令,并且脚本会等待它完成,然后再继续执行脚本上的下一个命令,则不要使用 &。如果您希望即使当前命令未完成也启动以下命令,请添加&
      • @NoOne 检查当前用户对该文件的访问权限。使用 sudo 启动编辑器命令可以解决问题。
      • 当然存在,是的,我确实设置了可执行位。尝试启用该服务时,我只收到The unit files have no installation config (WantedBy, RequiredBy, Also, Alias settings in the [Install] section, and DefaultInstance for template units) […]. 对此有何建议?
      【解决方案3】:

      编辑/etc/init/tty*.conf 中的 tty 配置,使用 shellscript 作为参数:

      (...)
      exec /sbin/getty -n -l  theInputScript.sh -8 38400 tty1
      (...)
      

      这是假设我们正在编辑 tty1 并且读取输入的脚本是 theInputScript.sh。

      警告这个脚本是以 root 身份运行的,所以当你向它输入内容时,你有 root 权限。还要附加一个路径到脚本的位置。

      重要提示:脚本完成后,必须调用 /sbin/login 否则您将无法登录终端。

      【讨论】:

      • 这个答案对我在构建我们的产品设备时非常有用,非常感谢
      猜你喜欢
      • 2019-10-21
      • 2011-10-08
      • 2019-07-07
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 2022-01-04
      相关资源
      最近更新 更多