OS4X check running daemons

From OS4X
Revision as of 07:15, 15 July 2011 by Admin (talk | contribs)
Jump to navigation Jump to search

Which processes must run

In order to keep OS4X running, the following processes must exist:

  • os4xrd: The OS4X master receive daemon (parent process of the subsequent receive daemon processes)
    • os4xrd_tcpip: The OS4X receive daemon for accepting TCP/IP connections
    • os4xrd_tcpip_tls: The OS4X receive daemon for accepting TLS secured TCP/IP connections for OFTP2
    • os4xrd_capi_0: The OS4X receive daemon for accepting ISDN connections on the first ISDN controller
    • (os4xrd_capi_x: subsequent ISDN controller receivig processes, if more controllers are configured)
  • os4xsqd: OS4X send queue daemon. Parent process of running actions started by this process, like sending send queue entries, polling partners, updating CRLs etc.
  • os4xdebugd: OS4X debug daemon which collects debugging information from every OS4X process for problem reporting

In case you have OS4X Enterprise, the following process must also exist:

  • os4xclientd: OS4X client daemon, responsible for user authentification and OS4X Enterprise job processing

How do the processes save their state

Every OS4X daemon process saves its PID (process ID) in the database. If a value exists in the database on startup, the daemon refuses to start with the message that another daemon must be running at the moment. In some rare cases, the database information may not meet the real situation, when PIDs are saved in the database and no processes are running. In this case, you can start the daemon in 'forced' mode which overrides the PID check at daemon start.

Beware: If more than one daemon is running, race conditions occur between the different running programs, mostly leading to problems in receiving or sending files. This situation is highly unsupported and absolutely to be avoided!

Identify running processes

In this example, the OS4X receive daemon will be checked for existance. Furthermore, the listening functionality on the configured TCP/IP ports is being checked.

All examples are being shown in a Linux environment. If you have another supported Unix environment (like AIX, HP/UX or Solaris) you may need to modify the command accordingly.

normal situation =

The process table will be checked for running "os4xrd" processes:

os4xbox:~# ps -ef  | grep os4xrd | grep -v grep
www-data  3771     1  0 08:58 ?        00:00:00 /opt/os4x/bin/os4xrd
www-data  3772  3771  0 08:58 ?        00:00:00 os4xrd_tcpip        
www-data  3773  3771  0 08:58 ?        00:00:00 os4xrd_tcpip_tls    
www-data  3774  3771  0 08:58 ?        00:00:00 os4xrd_capi_0       

Process IDs explained:

  • 3771: OS4X receive daemon master process
  • 3772: daemon listening on port 3305
  • 3773: daemon listening on port 6619
  • 3774: daemon listening on first configured ISDN controller

When checking the open ports, the tool "lsof" is very handy:

os4xbox:~# lsof -p 3772 | grep LISTEN
os4xrd  3772 www-data    3u  IPv4 84960962             TCP *:3305 (LISTEN)
<pre>
<pre>
os4xbox:~# lsof -p 3773 | grep LISTEN
os4xrd  3773 www-data    3u  IPv4 84960964             TCP *:6619 (LISTEN)

Checking ISDN incoming call acceptance is a little bit more complicated, which is described elsewhere.

critical situation

When to start in 'forced' mode?