我想让sudo
命令 ( sudo service smbd restart
) 在登录 1 分钟后运行。我该怎么做?
PS 这是一个没有连接显示器、鼠标、键盘或扬声器的系统 - 它是一个打印机和文件服务器。
答案1
A)如果在系统启动时,将其添加到/etc/rc.local
(1) 的末尾(显然在 之前exit 0
):
( sleep 60 && service smbd restart )&
笔记:
- 需要外部命令
()
,以便复杂命令脱离自身并进入后台,从而完成启动过程; sudo
那里不需要,/etc/rc.local
由执行root
;- 您真的确定这是一个解决方案吗?这是一个要求发生的竞争条件...
B)如果在用户登录,你需要两个步骤:
配置你的
sudo
,以便它不会要求输入命令密码service smbd restart
(请参阅如何在没有密码的情况下运行特定的 sudo 命令?(英文):准备一个包含以下内容的脚本并将其添加到您的自动运行/启动程序(根据您使用的桌面环境而变化)。
脚本:
#!/bin/bash
( sleep 60 && service smbd restart )&
脚注
(1)检查是否/etc/rc.local
可以执行。否则,使用以下命令使其可执行sudo chmod +x /etc/rc.local
答案2
尝试man sleep
:
sleep 60 && sudo service smbd restart
将其放入登录时执行的自动运行程序或脚本中。