在java中创建一个unix守护进程

时间:2017-07-21 09:20:16

标签: java linux unix

在java中,我需要创建一个unix守护进程。所以我需要创建套接字然后fork,以便systemd知道服务实际上已准备就绪。

在C中,通常这样做:

$(document).on("shown.bs.dropdown", ".dropdown", function () {
        $(this).children(".dropdown-menu").css("height",screen.height);
    })

因此,当进程终止时,systemd(或upstart或sysvinit)知道守护进程已准备好接受连接,并且现在可以启动依赖于它的守护进程。

我的问题是:如何在java中执行此操作?

我搜索了一下,发现了许多关于使用int main() { initialise_socket(); daemon(0,0); } 启动java的错误建议,这绝不是我需要做的事情。

2 个答案:

答案 0 :(得分:1)

纯Java应用程序(不使用JNI =本机C代码)无法守护自身 - JDK中没有相应的方法。你可以做的是使用deamonizing实用程序运行java进程(运行你的应用程序的VM),如start-stop-daemon

答案 1 :(得分:-1)

我已经使用Apache模块commons守护进程在Unix上实现守护进程。

https://wiki.apache.org/commons/Daemon

它没有在C中编写守护进程那么灵活,但最终还是足够了。

用法非常简单。你只需要实现一个启动和停止方法。