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