有谁知道(资源列表)从我启动计算机直到再次关闭期间自动运行哪些脚本以及何时运行。
我知道有几个地方可以添加脚本以自动运行,但我一直无法找出或多或少完整的列表。
例如,我知道这些:
~/.profile
登录时执行- 我可以用来
crontab -e
添加将在特定时间和/或日期触发的脚本
但我不知道将脚本放在哪里以便它们被执行
- 启动后,X 初始化之前
- 在 X(或其他图形 shell)初始化之后,但在任何人登录之前
- 登录 X 会话后
- 快速用户切换之前/之后
- 在注销 X 会话之前
- 在 X shell 上关闭之前
- X 关闭后、系统停止前
- 通过 tty-1..6 登录后/注销前
- 通过 SSH 登录后/注销前
有这样的清单吗?如果没有的话,我们可以在这里组装一个吗?
答案1
对于 Ubuntu Linux,我们的解决方案如下:
对于启动后、X 初始化之前:Ubuntu 从 GDM(使用 ubuntu-desktop 的用户)或 KDM(使用 kubuntu-desktop 的用户)启动 X-Windows
要在 GDM/KDM 之前运行脚本,您必须编写自己的 upstart 脚本。为此,您可以阅读新贵食谱。
用户切换后:您必须将脚本添加到
~/.bashrc
文件中。通过tty登录后:您必须将脚本添加到
~/.bash_profile
文件中。使用 ssh 登录后但不使用 tty 本地登录时:在这种情况下,您还必须在同一文件中添加脚本
~/.bash_profile
,但在这种情况下,测试环境变量是否存在SSH_CONNECTION
,并且仅在发现它存在时才运行命令。通过 tty 注销之前:您必须将脚本添加到
~/.bash_logout
文件中。通过 ssh 注销之前:您必须在
~/.bash_logout
文件中添加脚本,但在这种情况下,还要测试SSH_CONNECTION
环境变量是否存在,并且仅在发现它存在时才运行命令。在文件中,您必须添加行if [[ -n $SSH_CONNECTION ]]
答案2
如果您对 Linux 内置任务感兴趣,您还可以参考 Linux 运行级别,它是实现 Unix System V 风格初始化的操作模式。
- 0 停止 关闭系统。
- 1 单用户模式 用于管理任务的模式。
- 2 多用户模式 不配置网络接口,也不导出网络服务。
- 3 带网络的多用户模式 正常启动系统。
- 4 未使用/用户可定义 用于特殊目的。
- 5 使用适当的显示管理器正常启动系统。 (使用 GUI)作为运行级别 3 + 显示管理器。
- 6 重新启动 重新启动系统。
例如,您可以在下面看到 Linux 进程及其运行级别设置的部分列表:
chkconfig --list
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
auditd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
.
.
.