<div dir="ltr">Yeah, I got the process what you explain, thanks.<div>But, I suspect that systemd has room not to get ACK from the server process executed by service unit.</div><div>I concentrated on 3-way handshaking when I studied to analyze this problem.</div>
<div><br></div><div>Isn't it right when we consider the systemd?</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014/1/1 David Timothy Strauss <span dir="ltr"><<a href="mailto:david@davidstrauss.net" target="_blank">david@davidstrauss.net</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Tue, Dec 31, 2013 at 9:20 AM, Tony Seo <<a href="mailto:tonyseo7@gmail.com">tonyseo7@gmail.com</a>> wrote:<br>

> But What I really want to know is why the server process always waited in<br>
> the accept stage, when I executed client process for the first after system<br>
> boot.<br>
<br>
</div>It may hang in accept() if the service is Accept=true and the daemon<br>
still tries to accept(). It may also hang on accept() if it's simply<br>
blocking until the next connection.<br>
<div class="im"><br>
> As you know that socket activation makes a service related with socket unit<br>
> executed with connection of client process.<br>
> If the procedure for socket activation would run like that, the server<br>
> process executed for the first may not prepare the passive connection which<br>
> should be set beforehand because of client connection.<br>
> In my view, this waiting problem will be continue as far as the server<br>
> process is simultaneously executed with the client process.<br>
><br>
> what do you think about it?<br>
<br>
</div>There is no race condition, if that's what you mean. systemd waits<br>
using epoll for the appropriate event for starting a child daemon (for<br>
Accept=false) or child processes (for Accept=true). For Accept=false,<br>
it's the same effect as if a daemon used epoll on the listener socket<br>
and only ran accept() in a callback, just possibly with a bit more<br>
delay.<br>
</blockquote></div><br></div>