从java派生的进程继承FreeBSD上的父套接字

从java派生的进程继承FreeBSD上的父套接字,java,sockets,fork,freebsd,Java,Sockets,Fork,Freebsd,我有Spring(SprintBoot)应用程序,作为服务运行,并在FreeBSD上侦听端口80 $ sockstat -4 -l | grep 80 root java 98931 30 tcp4 6 *:80 *:* 我正在从我的服务启动另一个服务(例如,samba),如下所示: Runtime.getRuntime().exec("/usr/sbin/service samba_server start") 得到这个: $ sockstat -4 -l | grep 80 root s

我有Spring(SprintBoot)应用程序,作为服务运行,并在FreeBSD上侦听端口80

$ sockstat -4 -l | grep 80
root java 98931 30 tcp4 6 *:80 *:*
我正在从我的服务启动另一个服务(例如,samba),如下所示:

Runtime.getRuntime().exec("/usr/sbin/service samba_server start")
得到这个:

$ sockstat -4 -l | grep 80
root smbd 99735 30 tcp4 6 *:80 *:*
root nmbd 99730 30 tcp4 6 *:80 *:*
root java 98931 30 tcp4 6 *:80 *:*

其他服务也一样。在终止我的服务后,端口80仍然被占用。为什么会这样?exec()是否使用具有完整资源继承的fork?

vfork/posix_spawn帮助。
将此库与java绑定一起使用。 将此库与java绑定一起使用