如何在启动时以1分钟的延迟启动sudo命令?


8

我想在登录1分钟后sudo执行命令(sudo service smbd restart)。我将如何去做呢?

PS这是一个没有连接显示器,鼠标,键盘或扬声器的系统-它是打印机和文件服务器。


1
您登录是什么意思?启动计算机后1分钟还是用户登录后1分钟?
jhilmer 2014年


菲舍尔说什么,也看stackoverflow.com/questions/3964254/...
理查德

1
如果某些答案满足操作要求,请将其标记为已回答。见meta.askubuntu.com/questions/8333/...
Rmano

Answers:


10

A)如果是在系统启动时,请将其添加到/etc/rc.local(1)的末尾:(exit 0显然在之前):

( sleep 60 && service smbd restart )& 

注意:

  1. ()需要外部 ,这样复杂的命令才能自行分离并进入后台,从而使引导过程完成;
  2. sudo在那里不需要, /etc/rc.local由执行root
  3. 您真的确定这是解决方案吗?这是一个竞赛条件,要求发生...

B)如果是在用户登录时,则需要两个步骤:

  1. 进行配置sudo,使其不要求输入service smbd restart命令密码(请参阅如何在不使用密码的情况下运行特定的sudo命令?);

  2. 准备一个具有以下内容的脚本,并将其添加到您的自动运行/启动程序中(随您使用的桌面环境而定)。

脚本:

#!/bin/bash
( sleep 60 && service smbd restart )& 

脚注

(1)检查是否/etc/rc.local可执行。否则,用sudo chmod +x /etc/rc.local


4

尝试man sleep

sleep 60 && sudo service smbd restart

将其放在登录时执行的自动运行程序或脚本中。


如果您没有正确配置sudoers文件,它将无法正常工作(将不再要求输入密码)。见askubuntu.com/questions/159007/...
Rmano

1
同意 您的答案肯定比我的答案更完整。在这里,我只是试图为用户指出解决方案。
landroni 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.