sd_notify() from Java

自闭症网瘾萝莉.ら 提交于 2019-12-09 11:00:37

问题


I have a Java service (implemented using Dropwizard) which I'm launching from a user instance of systemd. So far so good. Now I would like to use systemd's notification features to make it aware of the service state (available as a C library function or shell script but eventually both methods talk to a socket referenced by an environment variable). I can run arbitrary code when the service has finished starting up, but I'm not sure how best to notify systemd from within Java.

Other developers run this service on Windows, so for bonus points it would be really useful if my notification code were discreet and didn't cause any output if not running with systemd.


回答1:


I found this implementation which does use system hooks, but at least doesn't require JNA/JNI.

https://gist.github.com/yrro/18dc22513f1001d0ec8d

As you say, systemd uses sockets referenced by an environment variable (System.getenv("NOTIFY_SOCKET") in the code), so I'd imagine there may also be a way to use a Java Socket, although I'd imagine a lot of research and/or trial-and-error would be required.



来源:https://stackoverflow.com/questions/27176303/sd-notify-from-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!