Thanks Yuxin for the quick reply,
and I found the problem.
Your suggestion to check the nginx log found the answer:

Here is a cat of the nginx log,

2022/08/03 11:05:08 [emerg] 3606#0: lua_shared_dict “shmem” is already defined as “shmem” in /etc/nginx/con
f.d/gl-220803c.conf:3
2022/08/03 11:05:41 [emerg] 5946#0: lua_shared_dict “shmem” is already defined as “shmem” in /etc/nginx/con
f.d/gl-220803c.conf:3
2022/08/03 11:05:46 [emerg] 6755#0: lua_shared_dict “shmem” is already defined as “shmem” in /etc/nginx/con
f.d/gl-220803c.conf:3
2022/08/03 11:05:51 [emerg] 7224#0: lua_shared_dict “shmem” is already defined as “shmem” in /etc/nginx/con
f.d/gl-220803c.conf:3
2022/08/03 11:05:56 [emerg] 7486#0: lua_shared_dict “shmem” is already defined as “shmem” in /etc/nginx/con
f.d/gl-220803c.conf:3
2022/08/03 11:06:01 [emerg] 7695#0: lua_shared_dict “shmem” is already defined as “shmem” in /etc/nginx/con
f.d/gl-220803c.conf:3

The problem was I put the backups of my gl.conf files
(gl-orig.conf, gl-220802a.conf, gl-220803a.conf etc)
in the same directory,
/etc/nginx/conf.d/

I have been keeping backup config files in the same directory for all other system components in Linux for many years with no problems,
but it seems nginx reads the backup files also,
and then has an emergency and exits.

And the reason is that at the bottom of gl.conf it has an include statement:

include /etc/nginx/gl-conf.d/*.conf;

which included all the backup files!!

I moved the backup files to a separate directory, and now nginx starts and listens on 20999 correctly.

Thanks for your help.
mc