LOGINCTL(1)

NAME
loginctl - 控制 systemd 登入管理器

SYNOPSIS

loginctl [OPTIONS...] {COMMAND} [NAME...]

描述

loginctl 可用於內省與控制 systemd(1) 登入管理服務 systemd-logind.service(8)

選項

能夠識別的命令列選項如下：

--no-ask-password
    在執行特權操作時不向使用者索要密碼。

-p, --property=
    在顯示 session/user/seat 屬性時， 僅顯示此處指定的屬性。 若未指定，則顯示全部屬性。 引數必須是屬性名(例如"Sessions")。 可以多次使用此選項以指定多個屬性。

--value
    在使用 show 顯示屬性時， 僅顯示屬性值，而不顯示屬性名及等號。

-a, --all
    在顯示 session/user/seat 屬性時， 顯示全部屬性，無論這些屬性是否已經被設定。

-l, --full
    在顯示程序樹的時候，不對超長行進行截斷。

--kill-who=
    與 kill-session 連用，指定殺死哪個程序。 leader 表示僅殺死會話的領導程序； all 表示殺死會話的所有程序。 預設值為 all

-s, --signal=
    與 kill-session 或 kill-user 連用， 指定向選中的程序傳送什麼訊號。 必須設為眾所周知的訊號名稱，例如 SIGTERM(預設值), SIGINT, SIGSTOP 之類

-n, --lines=
    與 user-status 或 session-status 連用， 控制顯示多少行日誌(從最新的一條日誌開始計算)。 必須設為一個正整數，預設值是"10"。

-o, --output=
    與 user-status 或 session-status 連用， 控制日誌的輸出格式。 可用值參見 journalctl(1) 手冊。 預設為 "short"

-H, --host=
    操作指定的遠端主機。可以僅指定一個主機名(hostname)， 也可以使用 "username@hostname" 格式。 hostname 後面還可以加上容器名(以冒號分隔)， 也就是形如 "hostname:container" 的格式， 以表示直接連線到指定主機的指定容器內。 操作將透過SSH協議進行，以確保安全。 可以透過 machinectl -H HOST 命令列出遠端主機上的所有容器名稱。

-M, --machine=
    在本地容器內執行操作。 必須明確指定容器的名稱。

--no-pager
    不將程式的輸出內容管道(pipe)給分頁程式。

--no-legend
    不輸出列標題， 也就是不在輸出列表的頭部和尾部顯示欄位的名稱。

-h, --help
    顯示簡短的幫助資訊並退出。

--version
    顯示簡短的版本資訊並退出。

命令

能夠識別的命令如下：

  會話命令

list-sessions
    列出當前所有的會話。這是預設命令。

session-status [ID...]
    顯示簡潔的會話狀態資訊，後跟最近的日誌。 如果指定了會話ID，那麼僅顯示指定的會話， 否則顯示當前呼叫者的會話。 此命令主要用於輸出人類易讀的資訊， 如果你想輸出易於程式分析的資訊， 那麼應該使用 show-session 命令

show-session [ID...]
    如果指定了會話ID，那麼顯示指定會話的各項屬性值， 否則顯示登陸管理器自身的各項屬性值。 除非使用了 --all 選項， 否則空屬性將被忽略。 還可以使用 --property= 選項指定僅顯示個別屬性。 此命令主要用於輸出易於程式分析的資訊， 如果你想輸出人類易讀的資訊， 那麼應該使用 session-status 命令。

activate [ID]
    啟用會話。 也就是將處於後臺的會話切換到前臺(如果同席位的另一個會話正處於前臺)。 如果指定了會話ID， 那麼將啟用指定的會話， 否則將啟用當前呼叫者的會話。

lock-session [ID...], unlock-session [ID...]
    鎖定/解鎖會話(如果會話支援螢幕鎖)。 如果指定了會話ID，那麼將鎖定/解鎖指定的會話， 否則將鎖定/解鎖當前呼叫者的會話。

lock-sessions, unlock-sessions
    鎖定/解鎖所有支援螢幕鎖的會話。

terminate-session ID...
    結束指定的會話。 也就是殺死指定會話的所有程序、釋放所有與此會話相關的資源。

kill-session ID...
    向指定的會話程序傳送訊號。 使用 --kill-who= 指定目標程序， 使用 --signal= 指定要傳送的訊號。

  使用者命令

list-users
    列出當前登入的使用者

user-status [USER...]
    顯示簡潔的已登入使用者資訊，後跟最近的日誌。 如果指定了使用者名稱或UID， 那麼僅顯示指定的使用者， 否則顯示當前呼叫者的使用者。 此命令主要用於輸出人類易讀的資訊， 如果你想輸出易於程式分析的資訊， 那麼應該使用 show-user 命令。

show-user [USER...]
    如果指定了使用者名稱或UID，那麼顯示指定使用者的各項屬性值， 否則顯示登陸管理器自身的各項屬性值。 除非使用了 --all 選項， 否則空屬性將被忽略。 還可以使用 --property= 選項來顯示指定的屬性。 此命令主要用於輸出易於程式分析的資訊， 如果你想輸出人類易讀的資訊， 那麼應該使用 user-status 命令。

enable-linger [USER...], disable-linger [USER...]
    啟用/禁止使用者逗留(相當於保持登入狀態)。 如果指定了使用者名稱或UID， 那麼系統將會在啟動時自動為這些使用者派生出使用者管理器， 並且在使用者登出後繼續保持執行。 這樣就可以允許未登入的使用者在後臺執行持續時間很長的服務。 如果沒有指定任何引數， 那麼將作用於當前呼叫者的使用者。

    參見 logind.conf(5) 中的 KillUserProcesses= 指令。

terminate-user USER...
    結束指定使用者的所有會話。 這將殺死該使用者的所有會話中的所有程序， 同時釋放與此使用者有關的所有資源。

kill-user USER...
    向指定使用者的所有程序傳送 --signal= 選項指定的訊號。

  席位命令

list-seats
    列出當前本機上的所有可用席位

seat-status [NAME...]
    顯示簡潔的席位資訊，後跟最近的日誌。 如果指定了席位名，那麼僅顯示指定的席位， 否則顯示當前呼叫者會話所屬的席位。 此命令主要用於輸出人類易讀的資訊， 如果你想輸出易於程式分析的資訊， 那麼應該使用 show-seat 命令。

show-seat [NAME...]
    如果指定了席位名，那麼顯示指定席位的各項屬性值， 否則顯示登陸管理器自身的各項屬性值。 除非使用了 --all 選項， 否則空屬性將被忽略。 還可以使用 --property= 選項來顯示指定的屬性。 此命令主要用於輸出易於程式分析的資訊， 如果你想輸出人類易讀的資訊， 那麼應該使用 seat-status 命令。

attach NAME DEVICE...
    將指定的裝置(DEVICE)持久的連線到指定的席位(NAME)上。 裝置可以用相對於 /sys 檔案系統的裝置路徑表示。 要建立一個新席位，至少需要連線一個顯示卡。 席位名稱必須以 "seat" 開頭， 後跟 a–z, A–Z, 0–9, "-", "_" 字元。 要想從席位上刪除一個裝置， 可以將此裝置連線到另一個席位， 或者使用 flush-devices 命令。

flush-devices
    刪除所有先前用 attach 命令連線的裝置(同時也刪除了所有先前用 attach 命令建立的席位)。 呼叫此命令之後，所有自動生成的席位將會被保留， 同時所有席位裝置將會連線到自動生成的席位上。

terminate-seat NAME...
    結束指定席位上的所有會話。 這將殺死指定席位上的所有會話程序， 同時釋放與之關聯的所有資源。

退出狀態

返回值為 0 表示成功， 非零返回值表示失敗程式碼。

例子

Example 1. 查詢使用者狀態

    $ loginctl user-status
    fatima (1005)
               Since: Sat 2016-04-09 14:23:31 EDT; 54min ago
               State: active
            Sessions: 5 *3
                Unit: user-1005.slice
                      ├─user@1005.service
                        ...
                      ├─session-3.scope
                        ...
                      └─session-5.scope
                        ├─3473 login -- fatima
                        └─3515 -zsh
    Apr 09 14:40:30 laptop login[2325]: pam_unix(login:session):
                           session opened for user fatima by LOGIN(uid=0)
    Apr 09 14:40:30 laptop login[2325]: LOGIN ON tty3 BY fatima

有 3 與 5 兩個會話。會話 3 是一個圖形會話， 以星號(*)標記。同時還顯示了兩個對應的 scope 單元中的程序樹。

環境變數

$SYSTEMD_PAGER
    指定分頁程式。僅在未指定 --no-pager 選項時有意義。 此變數會覆蓋 $PAGER 的值。 將此變數設為空字串或 "cat" 等價於使用 --no-pager 選項。

$SYSTEMD_LESS
    用於覆蓋 預設傳遞給 less 程式的命令列選項 ("FRSXMK")。

參見

systemd(1), systemctl(1), systemd-logind.service(8), logind.conf(5)

跋
本頁面中文版由中文 man 手冊頁計劃提供。

翻譯人員：金步國
金步國作品集：http://www.jinbuguo.com
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh