The signal(7) man page says:
Signal Value Action Comment --------------------------------------------------------- SIGCHLD 20,17,18 Ign Child stopped or terminated
This means that whenever a child process stops i.e. vsftpd or sshd, the parent - xinetd - receives signal 17 (which would be ignored by default, but in your case it's not).
You also need to start sshd with -i
:
-i
Specifies that sshd is being run from inetd(8). sshd is normally not run from inetd because it needs to generate the server key before it can respond to the client, and this may take tens of seconds. Clients would have to wait too long if the key was regenerated every time. However, with small key sizes (e.g. 512) using sshd from inetd may be feasible.
I don't know what vsftpd version you're using, but vsftpd-2.2.2-6.el6_0.1 works fine if I set listen=NO
in /etc/vsftpd/vsftpd.conf and run it without any arguments.