![系统启动时执行一次的任何文件](https://linux22.com/image/810023/%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E6%97%B6%E6%89%A7%E8%A1%8C%E4%B8%80%E6%AC%A1%E7%9A%84%E4%BB%BB%E4%BD%95%E6%96%87%E4%BB%B6.png)
每次操作系统启动时,是否存在评估一次的配置文件。bashrc 不符合条件,因为每次 gnome 终端启动时都会对其进行评估。
答案1
计划任务可以在这里提供帮助。
除了按分钟、小时、星期几、月份等开始某件事之外,它还有一些特殊操作:
@reboot 启动时运行一次。 @yearly 每年运行一次,“0 0 1 1 *”。 @annually (与 @yearly 相同) @monthly 每月运行一次,“0 0 1 * *”。 @weekly 每周运行一次,“0 0 * * 0”。 @daily 每天运行一次,“0 0 * * *”。 @midnight (与 @daily 相同) @hourly 每小时运行一次,“0 * * * *”。
使用以下命令从命令行完成编辑:
sudo crontab -e
在文件底部(下方# m h dom mon dow command
),您可以添加一行来执行您想要的操作,例如@reboot /directory/to/file
在启动期间执行 /directory/to/file。
仅一个警告:您需要确保该脚本没有输出或者输出被重定向到文件(或 /dev/null),因为 cron 没有显示来发送输出(并且它将结束操作)。
例子
sudo crontab -e
# 欲了解更多信息,请参阅 crontab(5) 和 cron(8) 的手册页 # PATH=/usr/sbin:/usr/bin:/sbin:/bin # mh dom mon dow 命令 @reboot /usr/bin/testscript
和...
cd /usr/bin/ sudo vi 测试脚本 echo“作品”> / tmp /测试 chmod 775 测试脚本
现在重新启动...这是一个有效的例子:
ls -l /tmp/测试 -rw-r--r-- 1 根 根 6 2011-05-29 08:34 /tmp/testing rinzwind@discworld:/tmp$更多/tmp/testing 作品
答案2
当我需要添加“运行一次”命令时,我会使用两个地方:
每次用户登录时(无论是图形/GDM 还是文本/控制台登录): ~/.profile
优点:
- 即使不使用 GDM/X11/Graphical 服务器,它也能正常工作。这意味着它可以与 SSH 和文本模式登录一起使用
- gnome 终端启动时不会按要求进行评估。仅在登录时进行评估
- 使用用户权限执行,它是安全的,同时允许完全访问个人脚本。
- 在所有挂载完成后运行,以便整个文件系统可用。
缺点:
- 如果用户登录、注销并再次登录,则每次登录都会再次执行一次。所以这不是“真正的”仅系统启动。但它也许能满足你的需要。
- 由于这即使在文本模式登录下也会执行,因此建议不要放置任何需要 GDM/X11 服务器的命令(如 synergy daemon)
- Bash 仅用于文本模式登录。因此,如果使用 GDM,则脚本中不接受任何 bashism,因为 Ubuntu 将使用
dash
GDM 启动时(任何用户登录之前): /etc/gdm/Init/Default
优点:
- 无论有多少用户登录或退出,都只执行一次
- 可用于文本和图形命令
- 在所有挂载完成后运行,以便整个文件系统可用。
缺点:
- 使用用户运行
gdm
。因此个人脚本及其路径必须是全球可读且可执行的 - 如果没有使用 GDM 服务器,则无法使用(呃)。因此它不会在文本模式启动时运行
- 再次强调,不能在 bash 中运行,因此必须避免 bashisms。
使用适合您需要的方法。
答案3
除了其他答案之外,您还可以将启动(超级用户)命令放入/etc/rc.local
。
答案4
只需将命令添加到/etc/rc.local
。它会在启动过程结束时执行一次。确保以错误代码 0 退出。
(0)asus-romano:~/PDF% cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0
我从……嗯……1989 年的 Ultrix 开始就一直在其他电脑上使用这个。您必须确保您的脚本在以 root 身份调用且没有图形界面的情况下工作。测试它的一种方法是在 root shell 中从虚拟控制台(Ctrl-Alt-F1,Ctrl-Alt-F7 返回图形环境)运行它(sudo -i
)。
请注意,该 shell 中的错误命令可能会彻底破坏您的系统。