ホーム > 未分類 > systemd socketでxinetdからcatしたみたいにする

systemd socketでxinetdからcatしたみたいにする

なんにもない状態のminimal installしたCentOSにプログラムを流し込むため、
telnetでつなぐととりあえず好き放題出力して終わるだけのsocketが作りたかった。

コツは二つ。
1. socket側に、Accept=true をつける
これやらないと事前にserviceを立ち上げちゃって駄目。中身がcatとかなので、出力だけして死ぬからfailedとか言い出して接続しても何も返してくれなくなる。

2.service側の名前にちゃんと@をつけておく
これ忘れてはまった。

できたのはこんなの。22526/tcpに繋ぐとサーバ側のファイルを吐き出してくる。

socketファイル

[Unit]
Description=rndnet bootstrap script distributor socket

[Socket]
ListenStream=0.0.0.0:22526
Accept=true

serviceファイル

[Unit]
Description=rndnet bootstrap script distributor

[Service]
ExecStart=/bin/cat /path/to/output/file
StandardInput=socket
StandardOutput=socket
Restart=always

Q. minimalのCentOSってtelnetないけどどうすんの?
A. cat < /dev/tcp/hostname/port ってやるととれるんだよ!!!

広告
カテゴリー:未分類
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。