Closed sergey-safarov closed 3 years ago
I believe systemd-socket-activate
might be able to accomplish what you're looking for (https://www.freedesktop.org/software/systemd/man/systemd-socket-activate.html).
Thanks, this must works.
I also make search for required libs to start systemd-socket-activate
and looks use need many libs. For me that not good.
[root@safarov-server ~]# ldd /usr/bin/systemd-socket-activate
linux-vdso.so.1 (0x00007ffc931e7000)
libsystemd-shared-239.so => /usr/lib/systemd/libsystemd-shared-239.so (0x00007fe57aacc000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fe57a8b4000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe57a694000)
libc.so.6 => /lib64/libc.so.6 (0x00007fe57a2d1000)
librt.so.1 => /lib64/librt.so.1 (0x00007fe57a0c8000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fe579ec2000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007fe579cb9000)
libcryptsetup.so.12 => /lib64/libcryptsetup.so.12 (0x00007fe579a45000)
libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007fe579729000)
libip4tc.so.0 => /lib64/libip4tc.so.0 (0x00007fe579521000)
libseccomp.so.2 => /lib64/libseccomp.so.2 (0x00007fe5792da000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fe5790af000)
libidn2.so.0 => /lib64/libidn2.so.0 (0x00007fe578e91000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fe578c6a000)
liblz4.so.1 => /lib64/liblz4.so.1 (0x00007fe578a53000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fe578801000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fe5785a7000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe57b15e000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007fe5783a1000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fe578199000)
libdevmapper.so.1.02 => /lib64/libdevmapper.so.1.02 (0x00007fe577f40000)
libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007fe577cac000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007fe5777ce000)
libjson-c.so.4 => /lib64/libjson-c.so.4 (0x00007fe5775be000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fe57739d000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fe577199000)
libpcap.so.1 => /lib64/libpcap.so.1 (0x00007fe576f53000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fe576ccf000)
libunistring.so.2 => /lib64/libunistring.so.2 (0x00007fe57694e000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x00007fe57669c000)
libudev.so.1 => /lib64/libudev.so.1 (0x00007fe576475000)
libm.so.6 => /lib64/libm.so.6 (0x00007fe5760f3000)
libz.so.1 => /lib64/libz.so.1 (0x00007fe575edc000)
Also when i create image using alpine dist, then this approach cannot be used because alpine not have systemd
.
Any way, thanks for idea. You are free close ticket.
I use application that utilize
systemd
sockets feature. If for some reason app is dies, then app restart and all connected clients reattached to app.Could you add feature: 1) tcp socket handler and socket propagation to child process (like systemd); 2) application process restarting if child process dies.