Ubuntu - 用"sudo"启动时运行命令

Mar*_*lis 91 linux ubuntu-11.10

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

sudo searchd
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Did*_*set 194

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

之前写下命令exit 0.之后写的任何内容exit 0都不会被执行.

  • 之前,当然.在退出0之后写的任何内容都不会被执行. (38认同)
  • 命令是在"退出0"之前还是之后? (7认同)

Nug*_*get 9

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

(...)
exec /sbin/getty -n -l  theInputScript.sh -8 38400 tty1
(...)
Run Code Online (Sandbox Code Playgroud)

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

警告这个脚本是以root身份运行的,因此当您向其输入内容时,您拥有root权限.还附加脚本位置的路径.

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


Jav*_*avi 5

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

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

包起来
$ sudo crontab -e -u root

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

@reboot sudo searchd
Run Code Online (Sandbox Code Playgroud)