Как я могу запустить команду при запуске на сервере Ubuntu, а не как пользователь root?
Иногда (это довольно редко) мой провайдер VPS должен перезагрузить мой VPS, чтобы исправить проблемы или применить патч. Есть ли способ автоматически запускать команды от имени моего пользователя после перезагрузки VPS? Я читал о размещении скриптов в /etc/rc.local
но я понимаю, что эти скрипты будут запускаться от имени пользователя root. В частности, я хотел бы запустить следующие команды:
screen -U -S Irssi irssi
screen -S rtorrent rtorrent
Таким образом, Irssi автоматически переподключится к своим IRC-серверам, и rtorrent снова начнет заполнять, чтобы им не пришлось ждать, пока я увижу письмо от моего провайдера VPS, войдите в систему и перезапустите их вручную. Любые советы будут высоко ценится!
1 ответ
Увидеть /etc/crontab
Вы можете настроить его для запуска чего-либо с "пользователем" и иметь опции
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
По умолчанию на любом компьютере с Ubuntu:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
В общем, вы хотите что-то вроде:
@reboot {your_user} {your_script}