ser2net.yml を編集して docker を再起動した後、docker コンテナで ser2net を再起動できません。

ser2net.yml を編集して docker を再起動した後、docker コンテナで ser2net を再起動できません。

/etc/ser2net.ymlDockerコンテナのファイルを編集します。

  • ser2netファイルに次のエントリを追加しました。

    connection: &con40000
        accepter: tcp,40000
        enable: on
        options:
          banner: *banner
          kickolduser: true
          telnet-brk-on-sync: true
        connector: serialdev,
                  /dev/ttyUSB0,
                  115200n81,local nobreak
    
  • Dockerコンテナを再起動します。

    docker stop my_container
    docker start my_container
    
  • コンテナに戻る

    docker exec -it my_container bash
    

    しかし、再起動に失敗しました。ser2net:

    $ systemctl restart ser2net
    System has not been booted with systemd as init system (PID 1). Can't operate.
    Failed to connect to bus: Host is down
    

完全なser2net.ymlファイルです

%YAML 1.1
---
# This is a ser2net configuration file, tailored to be rather
# simple.
#
# Find detailed documentation in ser2net.yaml(5)
# A fully featured configuration file is in
# /usr/share/doc/ser2net/examples/ser2net.yaml.gz
#
# If you find your configuration more useful than this very simple
# one, please submit it as a bugreport

define: &banner \r\nser2net port \p device \d [\B] (Debian GNU/Linux)\r\n\r\n

connection: &con0096
    accepter: tcp,2000
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyS0,
              9600n81,local

connection: &con1096
    accepter: tcp,2001
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyS1,
              9600n81,local

connection: &con0192
    accepter: tcp,3000
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyS0,
              19200n81,local

connection: &con1192
    accepter: tcp,3001
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyS1,
              19200n81,local

connection: &con40000
    accepter: tcp,40000
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
              /dev/ttyUSB0,
              115200n81,local nobreak

答え1

いいね、指摘してくれた@realpclaudioに感謝します。 systemdを実装しません。

次の2つの解決策が機能します。

$ docker exec -it hacpy_container pkill ser2net
$ docker exec -it hacpy_container ser2net -c /path/to/ser2net.yml
Unable to start mdns: Out of memory #<- this still restarted ser2net

そして

$ service ser2net restart 
Unable to start mdns: Out of memory #<- this still restarted ser2net

最初はこの質問について少し混乱しました。mdnsを起動できません:メモリが不足しています。ser2netただし、ポートマッピングに問題はありませんでした。

関連情報