linux 在systemd服务运行时之间传递参数

dnph8jn4  于 2023-01-29  发布在  Linux
关注(0)|答案(1)|浏览(219)

是否可以在服务运行时之间传递参数?我已经找到了如何使用变量启动服务以及如何在运行时使用外部文件传递参数。但是,我找不到有关在服务之间交换数据的信息。

2izufjch

2izufjch1#

您正在寻找一种IPC机制,Systemd没有提供,因为Linux已经有了不少。
最常用的方法是让服务侦听套接字(通常是/run中的AF_UNIX套接字,但TCP也是一个选项,例如如果你用Java编写),并允许其他服务连接到它并提交或接收数据。你可以发明自己的协议,但实际上是任何RPC系统(如gRPC、SunRPC或REST)也可以在本地使用,无论是跨TCP还是跨AF_UNIX套接字。
D-Bus是systemd自己使用的一个特定的IPC系统(它也构建在AF_UNIX套接字之上,但有一个中央“消息总线”守护进程),但它不是systemd的 * 一部分。它可能在任何基于systemd的发行版上都可用。D-Bus绑定可用于大多数编程语言。
除了AF_UNIX套接字,Linux还有几种形式的“共享内存”和“消息队列”系统(POSIX IPC和SysV IPC的变体)。

相关问题