Linux
僅在第一個會話中執行終端命令
我想執行一個命令以在我的終端中顯示歡迎消息,但我希望它僅在桌面會話中的第一個終端會話中執行。我知道通過將命令添加到 .bashrc 來執行命令,但是這些命令會在每個終端會話中執行,並且我試圖將我的命令限制在第一個會話中。有誰知道如何做到這一點?謝謝你。
我正在使用 Ubuntu 21.10 測試版,如果有區別的話。
首先……在桌面會話中
因此,您需要與桌面會話進行互動!
想法:您檢查存在於您的會話下的服務。如果它不存在,則列印歡迎消息,然後啟動服務。
因此,編寫一個使用者服務,例如
welcome-msg.service
(如https://wiki.archlinux.org/title/systemd/User#Writing_user_units):~/.config/systemd/user/welcome-msg.service :
[Unit] Description=Welcome Message one-shot service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/true
然後,在你的
~/.bashrc
:# Check whether the service has been started if ! systemctl --user is-active --quiet welcome-msg; then echo "Welcome!" systemctl start welcome-msg fi