最新消息:阿啰哈,本人90后,目前单身,欢迎妹子们来撩!.(。→‿←。) 微信:frank01991

portreserve守护进程

CentOS 林志斌 1035浏览

portreserve 用于帮助服务占用端口号, 用于确保某个端口不被占用.
例如你开发了一个daemon, 服务使用 8888 端口, 但是这个端口有可能在无意间被其它进程使用了, 会造成daemon启动时无法正确侦听8888端口.
这种情况下, 你可以通过portreserve来避免8888端口被占用.

工作原理
portreserve 是一个守护进程, 一般应随系统启动加载,启动后读取/etc/portreserve/目录下的所有配置文件, portreserve 创建若干套接字, 并将配置文件中指定的端口绑定到创建的套接字上,这样, 指定的端口即先被portreserve占用, 其它进程无法直接使用该端口(会得到Address already in use的错误).
(由于portreserve未调用 listen()进行侦听, 此时使用netstat 类的工具无法查看到该端口)
需要使用端口的进程在启动前, 需要调用portrelease命令先释放端口后再启动.

配置
配置文件位于/etc/portreserve/下, 
每个文件定义一个服务, 文件名即服务名, 文件名中含有 "." 或 "~" 的文件将被忽略, 
配置文件中定义端口, 例如 80 或 http , 也可以限定传输协议, 如下:
    80/tcp
    53/udp
每个配置文件中可以定义多个端口, 每行一个

端口释放
portrelease 服务名
服务名即/etc/portreserve/ 下配置文件的名字, 配置中定义的所有端口都将被释放.
注意: portreverse所有的服务都被portrelease释放后, portreverse进程会退出

已知的应用场景
CentOS 6上,  bind9 服务使用portreserve保护named启动之前port 953不被其它进程占用(portreserve 在网络启动之后马上启动)

转载请注明:林志斌 » portreserve守护进程

发表评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址