<div dir="ltr"><div><div><div><div>Hi,<br>>>     ret = sd_pid_notify_with_fds(0, 0, "FDSTORE=1\n", (const int *) fd,<br>>>                            num_fd);<span class=""></span><br><br>> Is "fd" a single fd? If so you need to pass this as &fd of course...<br></div><br>No, fd is a int array, which holds num_fd,  "fd" values.<br><br>>The FDSTORE=1 line doesn't need to be suffixed with "\n" btw (but it<br>>doesn't hurt if you do...)<br>>It might be worth strace'ing your process to see that the right<br>>sendmsg() call is issued. If in doubt, strace this specific code<br>>snippet and paste the sendmsg() line here.<br><br></div><div> This is the output of the strace call on this section of the code in the sd_pid_notify_with_fds, when I try to save the fds.<br><br>socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 8<br><br>sendmsg(8, {msg_name(21)={sa_family=AF_LOCAL, sun_path="/run/systemd/notify"}, msg_iov(1)=[{"FDSTORE=1\n", 10}], msg_controllen=40, {cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {7}}, msg_flags=0}, MSG_NOSIGNAL) = -1 EINVAL (Invalid argument)<br><br>close(8)                                = 0</div><br></div>Thanks<br></div>Jana<br><br></div>