How do I make a sudo command start at start-up with a 1 minute delay?
Solution 1
A) If it's at system start-up, add this to the end of your /etc/rc.local
(1): (before the exit 0
, obviously):
( sleep 60 && service smbd restart )&
Note:
- the outer
()
are needed so that the complex command detach itself and go to the background, allowing the boot process to finish; -
sudo
is not needed there,/etc/rc.local
is executed byroot
; - Are you really sure this is a solution? It is a race condition asking to happen...
B) if it's at user login, you need two steps:
configure your
sudo
so that it will not ask for a password forservice smbd restart
command (see How do I run specific sudo commands without a password?);prepare a script with the following contents and add it to your autorun/startup program (varies with the desktop environment you are using).
Script:
#!/bin/bash
( sleep 60 && service smbd restart )&
Footnotes
(1) check if /etc/rc.local
is executable. Otherwise, make it so with sudo chmod +x /etc/rc.local
Solution 2
Try man sleep
:
sleep 60 && sudo service smbd restart
Put this in the autorun programs or scripts executed at login time.
Related videos on Youtube
user2235532
Updated on September 18, 2022Comments
-
user2235532 almost 2 years
I would like to make a
sudo
command (sudo service smbd restart
) run after 1 minute of being logged on. How would I go about doing this?P.S. This is a system with no monitor, mouse, keyboard or speakers connected - it's a printer and file server.
-
Lynob over 10 yearspossible duplicate askubuntu.com/questions/814/how-to-run-scripts-on-start-up
-
Richard over 10 yearsWhat Fischer said, also see stackoverflow.com/questions/3964254/…
-
Rmano over 10 yearsIf some answer satisfy the OP, please mark it as answered. See meta.askubuntu.com/questions/8333/…
-
-
landroni over 10 yearsAgreed. Your answer is certainly more complete than mine. Here I was simply trying to point the user towards a solution.