Hello Steven!
...If appears you did something to your services file so that it no longer contains a valid syslog entry...
BINGO...I did replace the regular SERVICES file with a Wireshark supplied one because that one was showing a much larger list of services and otherwise the format appeared to be the same, short of a comment '#' character denoting comments.
Specifically:
1) SUPPLIED# To Boost the performace of Dynamic IP Servers ,We moved the DHCP/BINL
# Ports to the top of the File./*IC41013:--[Kishore Kumar Pillai] */
# Port Assignments:
#
# Keyword Decimal Description References
# ------- ------- ----------- ----------
0/tcp #Reserved
0/udp #Reserved
# #Jon Postel <postel@isi.edu>
tcpmux 1/tcp #TCP Port Service Multiplexer
tcpmux 1/udp #TCP Port Service Multiplexer
# #Mark Lottor <MKL@nisc.sri.com>
compressnet 2/tcp #Management Utility
compressnet 2/udp #Management Utility
...
syslog 514/udp #
...
2) WIRESHARK# This is a local copy of the IANA port-numbers file.
#
# Wireshark uses it to resolve port numbers into human readable
# service names, e.g. TCP port 80 -> http.
#
# It is subject to copyright and being used with IANA's permission:
# http://www.wireshark.org/lists/wireshark-dev/200708/msg00160.html
#
tcpmux 1/tcp # TCP Port Service Multiplexer [Mark_Lottor] [Mark_Lot
tcpmux 1/udp # TCP Port Service Multiplexer [Mark_Lottor] [Mark_Lot
compressnet 2/tcp # Management Utility
compressnet 2/udp # Management Utility
...
syslog 514/udp #
...
...FWIW, Mike built his syslogd with Watcom and provided full source code. You might want to consider modifying the code so that that it does not trap when GETSERVBYNAME returns NULL...
Indeed, I started to look at the code to understand where the SYS1808 with the "The software diagnostic
code (exception code) is 0005." is coming from. As best as I could tell the 'startup()' section in syslogd.c does this:
...
// ***** IPC Thread - setup and start *****
//
// Function to setup and start ICP thread. Create SEM1/SEM2,
// start thread, and wait for thread to set SEM1 signaling thread
// running. SEM1 reset on exit/return
if (DosCreateEventSem(IPCSEM1, &hevIPCSEM1, DC_SEM_SHARED, FALSE))
{
handleinternalmsg(STARTERROR_4, LOG_ERR);
return(STARTERROR_5);
}
if (DosCreateEventSem(IPCSEM2, &hevIPCSEM2, DC_SEM_SHARED, FALSE))
{
handleinternalmsg(STARTERROR_5, LOG_ERR);
return(STARTERROR_5);
}
...
...but what I couldn't figure out is whether that "...exception code is 0005..." was in fact the result of STARTERROR_5 being posted.
So at the risk of this being a much bigger follow-up question: how exactly did you get from that SYS1808 to 'something is off with your SERVICES file'

Seriously...I have no real OS/2 programming experience, but I've looked at various code snippets multiple times and have done some small stuff. However, trying to figure out how to DEBUG issues is an entirely different ballgame.