SERVICES: Restart interrupted services syscalls

Under some platforms (e.g. Linux ARMv4 LE SFP) the thread which
handles signals is not as useful as others.  If the services
thread ended up handling a SIGCHLD which didn't happen all the
time but could happen sometimes, then it would cease processing
service requests.

This fixes this problem.

Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>