有时(这种情况很少见)我的 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}