This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
tutorial:autorun_options:zh [2023/12/03 10:08] hfsr [事件注册记录] |
tutorial:autorun_options:zh [2023/12/03 10:16] hfsr [交互式Shell启动 (.shrc)] |
||
---|---|---|---|
Line 85: | Line 85: | ||
下列的进入点就像“钩子”,或者脚本位置。通过这些进入点你可以在电脑启动时运行你的后台或前台应用。 | 下列的进入点就像“钩子”,或者脚本位置。通过这些进入点你可以在电脑启动时运行你的后台或前台应用。 | ||
- | ====交互式Shell启动运行脚本 (.shrc)==== | + | ====交互式Shell启动(.shrc)==== |
- | 引导启动的最后一步是加载OpenOS shell。shell会阻塞等待有tty输出可用。这意味着如果没有GPU或屏幕,shell启动将会等待。 | + | 引导启动的最后一步是加载OpenOS shell。shell会阻塞等待,直到有tty输出可用。这意味着如果没有GPU或屏幕,shell启动将会进行等待。 |
- | 在用于tty的stdout可用后,shell会完成加载,并且执行`/etc/profile.lua`,此脚本将会加载别名以及设置环境变量。`/etc/profile.lua`脚本做的最后一件事是[[https://ss64.com/bash/source.html|“source”]](读取并执行)你的`/home/.shrc`文件,此文件默认为空。`source`不会执行Lua代码,而是将文件中的每一行作为shell命令运行。如果你有一个想在shell加载时运行的脚本,那么可以将指向此脚本的路径输入你的`.shrc`文件中。`.shrc`会在每次shell加载时运行,也就是说每次引导启动可能不止执行一次。因为用户可以输入 `exit`、`^d`甚至可以发送硬中断信号来杀死shell程序(然后init进程会加载一个新的shell)。 | + | 在用于tty的stdout可用后,shell会完成加载,并且执行`/etc/profile.lua`,此脚本将会加载别名以及设置环境变量。`/etc/profile.lua`脚本做的最后一件事是[[https://ss64.com/bash/source.html|“source”]](读取并执行)你的`/home/.shrc`文件,此文件默认为空。`source`不会执行Lua代码,而是将文件中的每一行作为shell命令运行。如果你有一个想在shell加载时运行的脚本,那么可以将指向此脚本的路径输入你的`.shrc`文件中。`.shrc`会在每次shell加载时运行,也就是说每次启动可能不止执行一次。因为用户可以输入`exit`、`^d`甚至可以发送硬中断信号来杀死shell程序(然后init进程会加载一个新的shell)。 |
- | 我更建议编辑`/home/.shrc`而不是`/etc/profile.lua`,仅仅为了有序性。 | + | 我更建议编辑`/home/.shrc`而不是`/etc/profile.lua`,仅出于有序性考虑。 |
- | ====Runscripts (rc)==== | + | ====Runscripts(rc)==== |
请回顾[[api:rc:zh|RC文档]]的内容。 | 请回顾[[api:rc:zh|RC文档]]的内容。 | ||
`/bin/rc`可被用于启用开机启动脚本。RC脚本甚至在没有shell、没有GPU、没有屏幕、没有键盘的系统上也能启动。 | `/bin/rc`可被用于启用开机启动脚本。RC脚本甚至在没有shell、没有GPU、没有屏幕、没有键盘的系统上也能启动。 | ||
- | ====文件系统的Autorun脚本(autorun.lua)==== | + | ====文件系统的Autorun(autorun.lua)==== |
- | 在任何文件系统的根目录中你都可以创建名为`autorun.lua`(或者`.autorun.lua`)的文件。当文件系统组件首次被检测到,OpenOS会自动运行此文件。请注意`/home/autorun.lua`不在*rootfs*(根文件系统)的根目录中。本段所说的autorun脚本会在文件系统每次被添加到系统时都执行一次(例如,你把带有autorun脚本的软盘拔出再重新插入就会执行一次)。 | + | 在任何文件系统的根目录中你都可以创建名为`autorun.lua`(或者`.autorun.lua`)的文件。当文件系统组件首次被检测到后,OpenOS会自动运行此文件。请注意`/home/autorun.lua`不在**rootfs**(根文件系统)的根目录中。本段所说的autorun脚本会在文件系统每次被添加到系统时都执行一次(例如,你把带有autorun脚本的软盘拔出再重新插入就会执行一次)。 |
- | 此特性默认启用,并且可以在rw(可读写)模式的文件系统上禁用,方式是通过调用`filesystem.setAutorunEnabled(false)`,或者直接修改`/etc/filesystem.cfg`并加上`autorun=false`。 | + | 此特性默认启用,并且可以在安装于rw(可读写)模式文件系统的操作系统中禁用,方式是通过调用`filesystem.setAutorunEnabled(false)`,或者直接修改`/etc/filesystem.cfg`并加上`autorun=false`。 |
====引导启动脚本(/boot/)==== | ====引导启动脚本(/boot/)==== |