Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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)====+====Runscriptsrc====
  
 请回顾[[api:​rc:​zh|RC文档]]的内容。 请回顾[[api:​rc:​zh|RC文档]]的内容。
  
 `/​bin/​rc`可被用于启用开机启动脚本。RC脚本甚至在没有shell、没有GPU、没有屏幕、没有键盘的系统上也能启动。 `/​bin/​rc`可被用于启用开机启动脚本。RC脚本甚至在没有shell、没有GPU、没有屏幕、没有键盘的系统上也能启动。
-====文件系统的Autorun脚本(autorun.lua)====+====文件系统的Autorunautorun.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/​)====