Shell

自動執行的腳本(位置)列表,何時執行?

  • March 25, 2012

有沒有人知道(資源列表)哪些腳本會自動執行,以及從我啟動電腦的那一刻到它再次關閉的時間。

我知道有幾個地方可以添加腳本以自動執行,但我一直無法找出或多或少的完整列表。

例如,我知道這些:

  • ~/.profile在登錄時執行
  • 我可以crontab -e用來添加將在特定時間和/或日期觸發的腳本

但我不知道在哪裡放置腳本以便執行它們

  • 啟動之後,X 初始化之前
  • 在 X(或其他圖形外殼)初始化之後,但在任何人登錄之前
  • 登錄 X 會話後
  • 快速使用者切換之前/之後
  • 在退出 X 會話之前
  • 在 X shell 上關閉之前
  • X 關機後,系統停止前
  • 通過 tty-1..6 登錄後/註銷前
  • 通過 SSH 登錄後/註銷前

有這樣的清單嗎?如果沒有,我們可以在這裡組裝一台嗎?

對於 Ubuntu Linux,我們的解決方案如下:

  1. 在啟動之後,在 X 初始化之前: Ubuntu 從 GDM(那些使用 ubuntu-desktop 的)或 KDM(那些使用 kubuntu-desktop 的)啟動 X-Windows

要在 GDM/KDM 之前執行腳本,您必須編寫自己的 upstart 腳本。為此,您可以閱讀Upstart Cookbook。 2. **使用者切換後:**您必須在~/.bashrc文件中添加腳本。 3. **通過 tty 登錄後:**您必須在~/.bash_profile文件中添加腳本。 4. **使用 ssh 登錄後而不是使用 tty 進行本地登錄:**在這種情況下,您還必須將腳本添加到同一~/.bash_profile文件中,但在這種情況下,請測試SSH_CONNECTION環境變數是否存在,並且僅在發現它存在時才執行命令. 5. **通過 tty 註銷之前:**您必須在~/.bash_logout文件中添加腳本。 6. **通過 ssh 註銷之前:**您必須在~/.bash_logout文件中添加腳本,但在這種情況下,還要測試SSH_CONNECTION環境變數是否存在,並且只有在發現它存在時才執行命令。在文件中,您必須添加該行

if [[ -n $SSH_CONNECTION ]]

引用自:https://unix.stackexchange.com/questions/34956