DOKK / manpages / debian 12 / manpages-zh / systemd-socket-activate.1.zh_TW
SYSTEMD-SOCKET-ACTIVATE(1) systemd-socket-activate SYSTEMD-SOCKET-ACTIVATE(1)

systemd-socket-activate - 測試基於套接字啟動的守護程序

systemd-socket-activate [OPTIONS...] daemon [OPTIONS...]

描述

systemd-socket-activate 用於測試啟動基於套接字啟動的服務程序。 還可用於針對單個連線啟動單獨的服務程序例項。

可以透過 daemon 之後的 [OPTIONS...] 給要啟動的服務程序傳遞命令列選項。

如果使用了 --inetd 選項,那麼 socket 檔案描述符將被用作被呼叫程序的標準輸入與標準輸出。 否則,將繼承現有的標準輸入與標準輸出,而 socket 將被作為3號或更高的檔案描述符。 透過 $LISTEN_FDS 傳遞給 systemd-socket-activate 的 socket 將會被直接傳遞給被呼叫的程序, 透過 --listen= 指定的其他 socket 將會使用連續描述符(consecutive descriptor)。 systemd-socket-activate 預設在流式套接字(stream socket)上監聽, 但是可以使用 --datagram 選項改為在資料報套接字(datagram socket)上監聽, 或者使用 --seqpacket 選項改為在順序包套接字(sequential packet socket)上監聽。

選項

-l address, --listen=address

在指定的 address 上監聽。 接受一個類似 "2000"(埠) 或 "127.0.0.1:2001"(地址:埠) 這樣的字串。

-a, --accept

為每個連線啟動一個服務程序例項,並傳遞連線套接字。

-d, --datagram

在資料報套接字(SOCK_DGRAM)上監聽,而不是預設的流式套接字(SOCK_STREAM)。 不能與 --seqpacket 同時使用。

--seqpacket

在順序包套接字(SOCK_SEQPACKET)上監聽,而不是預設的流式套接字(SOCK_STREAM)。 不能與 --datagram 同時使用。

--inetd

使用 inetd 協議傳遞檔案描述符,也就是作為標準輸入與標準輸出, 而不是新式的使用 $LISTEN_FDS 變數來傳遞檔案描述符。

-E VAR[=VALUE], --setenv=VAR[=VALUE]

向被呼叫的程序傳遞環境變數。 如果在 VAR 後面 緊跟著 "=" 符號, 那麼會將其視為"變數=值"的結構。 否則表示將 systemd-socket-activate 所擁有的同名變數傳遞過去。

--fdname=NAME[:NAME...]

指定要傳遞的檔案描述符名稱。 這等價於在單元檔案中設定 FileDescriptorName= 並且啟用 sd_listen_fds_with_names(3) 。 可以多次使用此選項以指定多個描述符,也可以在同一個選項中使用冒號分隔多個描述符。 如果給出的名字多於檔案描述符的個數,那麼多出的名字將會被忽略。 如果給出的名字少於檔案描述符的個數,那麼多出的檔案描述符將被視為未命名的。

-h, --help

顯示簡短的幫助資訊並退出。

--version

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

環境變數

$LISTEN_FDS, $LISTEN_PID, $LISTEN_FDNAMES

參見 sd_listen_fds(3) 手冊。

$SYSTEMD_LOG_TARGET, $SYSTEMD_LOG_LEVEL, $SYSTEMD_LOG_COLOR, $SYSTEMD_LOG_LOCATION

systemd(1) 中的含義相同。

例子

Example 1. 在 2000 埠上執行一個回顯服務。

$ systemd-socket-activate -l 2000 --inetd -a cat

Example 2. 執行一個基於套接字啟動的 systemd-journal-gatewayd(8) 例項

$ systemd-socket-activate -l 19531 /usr/lib/systemd/systemd-journal-gatewayd

參見

systemd(1), systemd.socket(5), systemd.service(5), sd_listen_fds(3), sd_listen_fds_with_names(3), cat(1)

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

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

systemd 231