当 systemctl 调用时,我的 telnet 服务器软件无法正确发送字符

当 systemctl 调用时,我的 telnet 服务器软件无法正确发送字符

我写了一个基于socket的BBS包。如果我从命令行运行二进制文件: /usr/local/bin/coderunner 那么客户端会话会正确看到高位字符。但是,如果我运行 systemctl start coderunner,所有高位字符都会显示为“?”问号。

我已经与编译器的作者交谈过,如果 systemctl 以某种方式影响字符串库,那么唯一有意义的建议。我尝试显示 $LOCALE、$LANG ...我没有看到任何区别。

我已经运行了wireshark/tcpdump - 再次从CLI手动运行,我看到了CP437图形字符,并且在systemctl下运行时,我看到了“?”在输出流中。

  • 另一个奇怪的副作用是,这大约是两周前开始的——在此之前,我一直在 systemctl 下运行,没有出现任何问题。我没有改变编译器。

关于如何解决这个问题有什么建议吗?

  [Unit]
  Description=The Modern Pascal Code Running Socket Server
  After=network.target

  [Service]
  Type=simple
  PIDFile=/run/coderunner2.pid
  EnvironmentFile=-/etc/coderunner2.conf
  ExecStartPre=/usr/bin/rm -f /run/coderunner2.pid
  ExecStart=/usr/local/bin/coderunner2
  ##ExecStart=/usr/local/bin/coderunner2.sh
  ExecReload=/bin/kill -s HUP $MAINPID
  KillSignal=SIGQUIT
  TimeoutStopSec=5
  KillMode=process
  PrivateTmp=true
  Restart=on-failure
  RestartSec=42s
  StandardOutput=null

  [Install]
  WantedBy=multi-user.target

相关内容