HELIOS Base UB64 User manual (Version 4.0.0)  

C Technical notes

In this chapter we describe the structure of the HELIOS printer and server log files (which can be inspected in the HELIOS Admin Lists menu), show how to modify PostScript RIP inits in HELIOS Admin, describe error messages, etc.

At the end of the chapter you will find a table listing all TCP ports that are used by the HELIOS services.

C.1 Printer log file structure

Each entry in “HELIOSDIR/var/adm/printer.acct” (with the appendices “.0”, yesterday, to “.6”, seven days ago) has the following format:

status ptrName "username" "JobTitle" startTime duration
pages ListOfFonts

status (decimal):

  3 General UNIX warning
  2 PostScript output
  1 UNIX info (e.g. extended print information)
  0 OK
-1 Communications error
-2 PostScript error
-3 Terminated job (e.g. killed by signal)
-4 UNIX error (e.g. file not found)

ptrName: Logical (UNIX) printer name

"username": From PostScript header of job

"JobTitle": Document name, from PostScript header of job

startTime: Seconds since 1-1-1970 (UNIX “time_t” values)

duration: endTime-startTime in seconds

pages: endPage-startPage (determined by printer interrogation with the “pagecount.ps” query.

ListOfFonts: Fonts used, space delimited

If status is different from 0, the line is followed by the error output of the printer, bracketed by the lines “Error output:” and “End error output”. Also, if no printable data was sent to the printer (pages=0), then duration will be “0”.


Messages are only written to the printer log file if you activated the Accounting File option when creating the printer queue with HELIOS Admin.

User and document names in print jobs

The user name logged with each print job in the printer log file “HELIOSDIR/​var/​adm/​printer.acct” (and the user to which error messages are sent as mail) is determined by interrogating the PostScript header of the job for the name in the “%%For” comment.


Under Mac OS 7.x or later, the name in the “%%For” comment is automatically set to the “Owner Name” specified in the “Network Identity” section of Apple’s File Sharing control field.

In OS X, the name is taken from the Name entry in the “Accounts” section of the “System Preferences”.

If the “%%For” comment is missing, all jobs will be assigned to “nobody” by default.

If a name is specified but cannot be found in the list of long or short names in “/etc/passwd”, the specified (unknown) user name will still appear in the printer log file, but any error messages are sent as mail to “root” instead.


Mac OS 8/9:
If you check Save My Name Only or Save My Name and Password in the Apple Chooser, the name saved in the system may not be the same as the name in the “File Sharing” control field because it is possible to overwrite the prompted name before saving it. The name stored in File Sharing is the one used by the log file.

The name can be obtained from the “Computer Name” field in “System Preferences > Sharing”.

The document title is determined by interrogating the PostScript header of the job for the name in the “%%Title” comment.

It may be possible for you to set these comments for UNIX and MS-DOS print jobs, too, in order to ensure that they also have complete records in the printer log file.

C.2 Server log file structure

“HELIOSDIR/var/adm/server.acct” (with the appendices “.0”, yesterday, to “.6”, seven days ago) has entries for successful logins and for failed log attempts.

For a successful login, the “server.acct” entry has the following format:

status svrName ws_address status-pid "usrname" startTime duration
usrTime sysTime rusage

status: 1 (normal login)

svrName: Server name

ws_address: Workstation network address (TCP/IP or AppleTalk)

status-pid: Process exit status (0 = OK; 1…127 = error exit, i.e. the program has been terminated; 128… = abnormal termination, ask your system administrator) and process ID

"usrname": User login name

startTime: Login time, seconds since 1-1-1970 (UNIX “time_t” values)

duration: endTime-startTime (in seconds)

usrTime: Processor time consumed by user process, in the form <seconds>:​<microseconds>

sysTime: Processor time consumed by the process while in system mode, in the form <seconds>:<microseconds>

rusage: Resource usage information. The structure is operating system dependent – see the description of “getrusage” in your host machine documentation. Some of the resource usage fields are decoded and used by HELIOS Admin in the “Server Log” window.

For an unsuccessful login, the “server.acct” entry has the following format:

status svrName ws_address pid "name" time

status: 2 (bad login)

svrName: Server name

ws_address: Workstation network address (TCP/IP or AppleTalk)

pid: Process ID

"name": Attempted login name

time: Attempted login time, seconds since 1-1-1970 (UNIX “time_t” values)

C.3 Sync log file structure

“HELIOSDIR/var/adm/dtsync.log” (with the appendices “.0”, yesterday, to “.6”, seven days ago) has entries for the starting date and time of a synchronization, the sync job name, and the synchronization message.

The messages have the following format (from left to right):

startTime syncjobName message

startTime: Date and time the sync job started

syncjobName: Name of the sync job

message: Number of updated (synced)/​skipped (unsynced)/​removed (deleted) files and their size, number of processed directories, and the time consumed by the print job

C.4 PostScript RIP inits in HELIOS Admin

Printer INITs in HELIOS Admin must not contain the “exitserver” operator, because the following print job will not execute properly. This is because the INIT is sent to the printer in the same session as the following job.

Discussion: The INIT does normally not need to permanently change the server dictionary, because it automatically pre-fixes each and every print job. Furthermore, it is not recommended to try and change the server dictionary in an Admin INIT, because serverdict information is written each time you print to RIP EEPROM, and the latter has a programming life of 10,000 cycles only.

Solution: Simplify the INIT by removing the “exitserver” operator.

If possible, the INIT should also be designed to test the parameter it wants to change first in order to see if the parameter has already the required value. This saves RIP processing time, e.g.:

INIT recommended in the RIP manual:

serverdict begin 0 exitserver 
statusdict begin 2400 setresolution end

INIT recommended for use in HELIOS Admin:

statusdict begin 
resolution 2400 eq not {2400 setresolution} if end

INITs cannot contain PostScript code to interrogate the RIP because at present there is no way of returning the response to HELIOS Admin.


Please contact your RIP supplier and not HELIOS if you have any problems and/or questions regarding RIP INITs or RIP configuration!

C.5 Error logging

HELIOS error logging can be done with the “syslogd” program on UNIX platforms, and with the event logging system on Windows platforms.


“syslogd”, which runs continuously in the background within UNIX, has the task of processing status and error messages from other active programs, and sending them to a specific output device or file in accordance with its configuration. HELIOS Admin uses the services of “syslogd” to output system error messages and warnings.

By changing the configuration file “/etc/syslog.conf” on the server, the administrator is able to exactly control the flow of messages. For example, messages can be automatically passed on to users logged-on to the system (or entire groups) or simply stored in files or output to the system console.


Make sure that “syslogd” is appropriately configured on your operating system. Otherwise the HELIOS services will not log any error messages nor warnings.

Viewing Windows events

Viewing error logs on Windows platforms is done e.g. via the “Event Viewer” program (Computer Management > System Tools > Event Viewer), which provides application error records in the “Application” log file, security audit records in the “Security” log file, and system error records in the “System” log file.

C.6 UNIX kernel tuning

This section describes optional tuning procedures which require substantial UNIX experience. These procedures should not be attempted by beginners.

If the HELIOS host has plenty of memory, it may be worthwhile adjusting some data structures inside the operating system to be larger than normal. This keeps more information in memory that otherwise may need to be continuously re-read from the disk. Modern operating systems adjust the data structure values depending on the available memory size. See your UNIX documentation for more information.

For more information on UNIX kernel tuning see the HELIOS website:

C.7 WebShare on slow network clients

The WebShare login is by default RSA 1024 bit encrypted. This is done within JavaScript in the web browser. Slow network clients (e.g. 1st generation Apple iPhone) have a JavaScript timeout, which will result in unsuccessful logins. The preference RSABits allows reducing the login to 640 bits, which is still a very high security and allows the iPhone to work without any timeouts. It can be changed via the following preference:
# prefvalue -k Programs/authsrv/RSABits -t int 640

After restarting “authsrv” or restarting the HELIOS services (stop-helios and start-helios), the new encryption setting is activated. The WebShare login page will now show (Crypted RSA 640 bit).

C.8 TCP ports used by HELIOS

Port Protocol Where Function/Service
67 UDP Server DHCP server port
110 TCP Server EtherShare POP 3 mail server
137 UDP Server PCShare Browsing
138 UDP Server PCShare NetBIOS
139 TCP Server PCShare SMB/CIFS
445 TCP Server PCShare SMB/CIFS
512 UDP Server EtherShare biff notification
515 TCP Server BSD Remote LPR
5481 TCP Server AFP server
2000 UDP Server PCShare 1.x native DOS/Win 3.x
2001 TCP Server EtherShare mail server
2001 UDP Server PCShare 2.x native DOS/Win 3.x
2002 TCP Server ImageServer event listener
2003 UDP Server syslog notification
2003 TCP Server PCShare service port
2004 TCP Server EtherShare Admin
2005 TCP Client Create PDF Server (Acrobat Distiller)
2006 TCP Server HELIOS Admin
2007 TCP Server EtherShare print spooler (papsrv)
2008 TCP Server Authentication server service port
2009 TCP Server WebShare Web Server
2010 TCP Server WebShare File Server
2011-2014 TCP Client Printing PCShare native DOS printsrv
2011-2015 TCP Server Temporary ports used by WebShare File Server
2016 TCP Server WebShare File Server service port
2017 TCP Server Notification server service port
2018 TCP Server Create PDF Server (Ghostscript)
2019 TCP Server Tool Server
2021-2023 TCP Client Printing PCShare native DOS printsrv
2024 TCP Server Script Server service port
2025 TCP Server Desktop server HelRPC port
2026 TCP Server mDNS proxy server registrations
2027 TCP Server HELIOS DHCP service port
2028 TCP Server DHCP Server HelRPC port
2029 TCP Server IT Monitor Server service port
2030 TCP PDC HELIOS PDC logon service
2031 TCP Server HELIOS Index Server service port
2209 TCP Client HELIOS Admin telnet debugging port
2222 UDP Server EtherShare HelRPC port
2223 UDP Server PCShare HelRPC port
5353 UDP Server mDNS Server (“Bonjour”) port
5354 TCP Server mDNS Windows port (loopback only!)

HELIOS Website © 2015 HELIOS Software GmbH  
HELIOS Manuals February 6, 2019