Linux守护程序等待插座连接



我想创建一个简单的Linux守护程序,该守护程序将...

  • 在Local主机上打开TCP/IP服务器套接字,并指定端口
  • 等待连接
  • 有人连接后,它将读取客户端套接字的第一行(由n结束)
  • 如果该行是foo,它将运行命令bar
  • bar命令完成(或如果行不是foo),守护程序将等待另一个连接并执行相同的操作(在无限循环中)...

有可能在bash中写这篇文章吗?(以及如何?)

另外,我希望能够使用service my-foobar-daemon start / stop(在Ubuntu上)启动和停止脚本,我该怎么做?

谢谢:)

以下摘要使用bashnc来实现要求:

#! /bin/bash
while true; do
    coproc nc -l -p 8080
    if read -u "${COPROC[0]}" line; then
        case "$line" in
            foo)
                bar
                ;;
            *)
                echo "$line: unknown command" >&2
                ;;
        esac
    fi
    kill "$COPROC_PID"
    wait "$COPROC_PID"
done
#! /bin/bash
coproc nc -l -p 8080
while true; do
    if read -u "${COPROC[0]}" line; then
        case "$line" in
            foo)
                bar
                break
                ;;
            *)
                echo "$line: unknown command" >&2
                ;;
        esac
    fi
done
kill "$COPROC_PID"

最新更新