Houdini 20.5 Reference Stand-alone utilities

sesinetd

The Houdini license server. This program runs in the background managing Houdini licenses.

On this page

The Houdini installer registers this program with the operating system so it’s always running. It must be running for you to be able to run Houdini.

You should avoid editing the system files that register sesinetd to run at startup. Instead, you can put options in the sesinetd.ini file.

Mac

On macOS the installer registers the server as a daemon that launches when the system starts up (in /Library/LaunchDaemons/com.sidefx.sesinetd.plist).

Windows

On Windows the installer registers the server as a service that launches when the system starts up.

Linux

On Linux the installer registers the service with systemd.

For information on how to setup licensing for your use case see the Installation and Licensing guide.

Command line options

Information

--help

Show this help.

--ini-help

Show the ini help.

-v/--version

Print the sesinetd version string.

Server log

-V/--min-logfile-level ‹log level

Server log level.

  • 0 = no logging

  • 1 = fatal errors (Default)

  • 2 = errors

  • 3 = warnings

  • 4 = info

  • 5 = debug

-F/--min-console-level ‹log level

Console log level. See the level values above.

-l/--logfile ‹log file

Log file used for server logging information.

-z/--max-logfile-size ‹log size

Maximum log file size.

-d/--append-date

Append the date to the server log.

-c/--enable-console

Enable console output from the license server.

Note

This option is not supported on Windows as all output is logged to the log file.

-Y/--log-to-system

Log to the systems log file.

License log

-W/--license-log-level ‹0|1

License log level.

-u/--license-logfile ‹log file

Log file used for licensing information.

-y/--max-license-log-size ‹log size

Maximum license log file size.

Peak usage

-U/--usage-interval ‹interval

Specify the usage reporting interval. This option must be specified to turn-on usage reporting. Interval values:

  • minute

  • 5-minute

  • 30-minute

  • hour

  • 4-hour

  • 12-hour

  • day

-G/--include-user

Include user information in the usage report. This is off by default.

-i/--peakusage-file ‹file

Specify the usage report file location.

--confidential-users

When logging user information log the information to a separate file that you can keep internal.

--upload-usage

Indicate sesinetd should upload the peak usage to sidefx.com. The clientid and clientsecret must be specified as well for sesinetd to upload the usage.

Note

This option is only necessary for setups that are using peak usage billing.

Server

-p/--port ‹port

Use a non-standard port for communication.

-n/--threads ‹threads

Specify the number of threads to use. At least 4 threads must be used.

-m/--read-mask ‹ip mask

The read mask used to validate permissions for clients.

-M/--write-mask ‹ip mask

The write mask used to validate permissions for clients.

-D/--run-in-foreground

On non-Windows platforms do not run sesinetd in the background.

-o/--debug-mode

Place the license server in debug mode.

-P/--enable-partitioning

Enable license partitioning.

--clientid ‹value

The client id required to provide the API key. The ClientSecret must also be provided.

--clientsecret ‹value

The client secret required to provide the API key. The ClientID must also be provided.

--enable-ipv6

Enable IPv6 support (BETA)

--user ‹value

The user sesinetd should run as. The default is www-data or sesinetd depending on if www-data is already setup on the system.

--group ‹value

The group sesinetd should run as. The default is www-data or sesinetd depending on if www-data is already setup on the system.

--disable-redundant-config

Sesinetd will not update its DNS cache which means any licenses installed to DNS names will not be valid licenses for users to checkout.

SSL

-B/--enable-ssl

Enable ssl support for the server.

--ssl-cert-file ‹file

SSL certificate file location

--ssl-priv-file ‹file

SSL private file location

--ssl-ca-dir ‹directory

CA directory for SSL enabled communication.

--ssl-verify-peer

Turn on verifying the peer.

Options file

The location for this file is in the license directory for the specific platform with the name sesinetd.ini.

Mac

You can put options in /Library/Preferences/sesi/sesinetd.ini.

Windows

You can put options in a sesinetd.ini file in C:\Windows\keys\sesinetd.ini.

Linux

You can put options in /usr/lib/sesi/sesinetd.ini.

Server log

enableConsole=‹0|1

Enable if logging should also be output through the console.

minConsoleLogLevel=‹level

The minimum log level for the console. This is the same as setting -F on the command line.

minServerLogLevel=‹level

Server log level. This is the same as setting -V on the command line.

serverLogFile=‹file

The location the server log file should be. This is the same as setting -l on the command line.

appendDateToServerLog=‹0|1

When revolving the server log file append the date to the log file. This is handy for searching purposes. This is the same as setting -d on the command line.

maxServerLogSize=‹value

Maximum server log size before revolving the log file. This is the same as setting -z on the command line.

logToSystem=‹0|1

Enable the license server to log to the system in addition to any other logging that has been setup.

License log

licenseLogLevel=‹0|1

The log level for license information. (See the level values under “Peak usage” above.)

licenseLogFile=‹file

The path for the license log file. (See the level values under “Peak usage” above.)

maxLicenseLogSize=‹size

The maximum log file size for the license log.

Server

ClientID=‹value

The client id required to provide the API key. The ClientSecret must also be provided.

ClientSecret=‹value

The client secret required to provide the API key. The ClientID must also be provided.

port=‹value

The custom port to run the server on. The default is 1715. This is the same as setting -p on the command line.

threadCount=‹value

The number of threads to run the server with. The default is 6 threads. This value must be greater then or equal to 4. This is the same as setting -n on the command line.

readIPMask=‹mask

The read mask for the server. This tells the server which IPs are allowed to perform read operations on the server. The default is *.*.*.* and is the same as setting -m on the command line.

writeIPMask=‹mask

The write mask for the server. This tells the server which IPs are allowed to perform modification operations on the server (i.e. install a license). The default is +.+.+.+ and is the same as setting -M on the command line.

enableSSL=‹0|1

Enable SSL support on the server.

Warning

SSL support is currently a technical preview.

sslCertFile=‹file

The certification file location.

sslPrivateFile=‹file

The private ssl file location.

debugMode=‹0|1

Enable debug mode. This enables extra verbosity and in some situations extra logging. This is extremely useful while debugging an issue with the license server.

user=‹value

The user sesinetd should run as. The default is www-data or sesinetd depending on if www-data is already installed on the system.

group=‹value

The group sesinetd should run as. The default is www-data or sesinetd depending on if www-data is already installed on the system.

Peak usage

usageInterval=‹value

The interval used when logging peak usage information. Available options:

  • minute

  • 5-minute

  • 30-minute

  • hour

  • 4-hour

  • 12-hour

  • day

includeUser=‹0|1

Include user information in the usage report. This is off by default.

peakusageFile=‹file

Specify the usage report file location.

confidentialUsers=‹0|1

When logging user information log the information to a separate file that you can keep internal.

uploadUsage=‹0|1

Indicate sesinetd should upload the peak usage to sidefx.com. The clientid and clientsecret must be specified as well for sesinetd to upload the usage.

Getting Started

License file

The keystrings themselves are written locally to the licenses file. Ensure that the operating system does not append a .doc or .txt to the licenses file. The file must be called licenses. If you are sent a copy of the licenses file for your machine from SideFX, you must restart the license server to have the new file read.

Mac

The location of the license file is /Library/Preferences/sesi/licenses

Windows

The location of the license file is C:\Windows\keys\licenses

Linux

The location of the license file is /usr/lib/sesi/licenses

License Types

  • Workstation* licenses are node locked licenses meaning they may be used on the machine itself and not floated across the network.

  • LAL (Local Access Licenses) serve locations up to 100km in distance.

  • GAL (Global Access Licenses) do not have location restrictions.

Note

Apprentice and Indie users are only issued workstation (node locked) licenses.

Start/Stop the license server

You must have administrative rights (root, sudo) to be able to start/stop the license server.

If you initially installed Houdini using Apprentice Local Licensing, you will need to re-run the installer and choose Commercial Licensing. This will install the necessary license server tools.

Note

On all platforms you can start/stop sesinetd from hkey. Open Hkey ▸ File ▸ License Tools Services.

Windows

You can start and stop HoudiniLicenseServer in Control Panel ▸ Administrative Tools ▸ Services.

Linux

Run the sesinetd startup script located in /etc/init.d

Use systemctl sesinetd {start|stop} to start or stop the server.

Mac

In a terminal, use sudo launchctl unload /Library/LaunchDaemons/com.sidefx.sesinetd.plist to stop the service.

Use sudo launchctl load /Library/LaunchDaemons/com.sidefx.sesinetd.plist to start the service.

When you restart the license server software on a centralized server machine, the remote clients will not lose their sessions for approximately 5 minutes of a failed heartbeat (or license check).

Peak usage logging

This is a great tool to monitor your peak license usage by product type which can be used for license planning. In a given interval (minute, hour, or day) the peak usage and optionally the user data can be monitored to a log file that can be exported to different representations which then can be used to plan for more license purchases as your needs grow.

Options for usage logging

Each of these options are license server (sesinetd) options.

-U is the only required option to turn the logging on and without this option specified usage logging is not turned on.

Available intervals:

  • minute

  • 5-minute

  • 30-minute

  • hour

  • 4-hour

  • 12-hour

  • day

Make sure to choose the interval correctly as the smaller the interval the longer the export will take.

This means that within the specified interval it will hold the required information (peak usage for that interval, who checked out a license within the interval, etc.) and at the end of the interval it will log to the log file all of the information accrued within the interval.

Note

If a license has a peak usage of 0 (no one used the license in the interval) then nothing is logged for that license.

Note

The interval start is rounded down to the previous interval.

For example, if you start with the minute specified as the interval at 11:00:52am the interval start will be 11:00:00am and the interval will end and log the information at 11:01:00am. Each interval after is based on the starting interval. Meaning that if the first interval is 11:00:00am the next will be 11:01:00am and so on.

The -i option specifies the location of the log file. The default location is in the license path with the name sesinetd_peak_usage.bin.

Mac

The default path is /Library/Preferences/sesi/sesinetd_peak_usage.bin

Windows

The default path is C:\Windows\keys\sesinetd_peak_usage.bin.

Linux

The default path is /usr/lib/sesi/sesinetd_peak_usage.bin.

The -G option logs who used the license within the time interval. By default users are not logged and only the peak usage for each license is logged to the file.

Peak Usage Exporter

The exporter is used to extract the peak usage information from the peak usage log file. The exporter can export this information into different formats (i.e. mysql) along with other options to tailor the information to your exact specifications.

The exporter is located in $HHP/parsepeakuserlog.py.

Currently available exporter options are:

--no-progress-info

Do not display any progress information.

--verbosity

This is most helpful when you are bugging the exporter.

--group-by

How the exporter should group the information. Currently the groups are hour, day, or month.

--usage-by-license

Display the peak usage information on a per license basis instead of per-product.

--export-dir

Where to write the exported information.

--export-type

The format of the exported information. The available values are csv, mysql, or xlsx.

--export-users

Specify that the exporter should include users when exporting the formation.

--csv-dialect

Type of csv dialect to use. Currently the only option is excel.

--start-date

The start date of information the exporter should use while porting.

--end-date

The end date of the information the exporter should use while exporting.

Note

To use xlsx as an export type xlsxwriter must be installed prior to running the exporter.

Note

For better timezone handling python module pytz can be used. For the most accurate handling of time tzlocal can also be installed. These modules must be installed prior to running the exporter.

Peak usage MySQL exported tables

Table sesinetd_user holds information about each user that used a license during the reporting period.

Column

Data Type

Description

id

int

Id of the user in the table.

username

varchar(100)

username of the logged user.

machine

varchar(100)

machine of the logged user.

Usage by Product

Table sesinetd_product_usage holds information about the peak usage in a given interval by product.

Column

Data Type

Description

product

enum

The product name for the usage entry.

timestamp

integer

The timestamp of the product usage.

peak

integer

The peak usage of the product for the timestamp.

Tablesesinetd_product_usage_users holds information about a user that used a product in the given interval.

Column

Data Type

Description

user_id

integer

The id of the usage user.

product

enum

The product name for the usage entry.

timestamp

integer

The timestamp the usage user was logged for.

Usage by License

Table sesinetd_license holds information about each license used during the reporting period.

Column

Data Type

Description

license_id

varchar(10)

The id of the license logged.

product

enum

The product type of the license.

version

decimal

The version of the license.

quantity

integer

The total number of tokens for the license.

expires

date

The expiry date of the license.

ip_mask

varchar(100)

The ip mask for the license.

Table sesinetd_license_usage holds information about a licenses' peak usage in the given interval.

Column

Data Type

Description

license_id

varchar(10)

The id of the license logged.

timestamp

integer

The time at which the usage interval was logged.

peak

integer

The peak usage for this license in the given interval.

Table sesinetd_license_usage_users holds information about a users using a given license in the interval.

Column

Data Type

Description

user_id

integer

The user id of the usage user.

license_id

integer

The license id the license the user was using.

timestamp

integer

The timestamp of the interval the usage had taken place in.

Redundant Server

Note

This is an entirely new system from the previous redundant system and there is no relation to the old system.

Standard licensing requires all licenses to be tied to the machine name the server is running on. Starting with Houdini 19.0 licenses are either installed to the DNS name (if one is setup) or the machine name (if DNS is not setup). Periodically sesinetd will attempt to resolve the DNS name and check if the resolved name matches the machine name its installed on. If the names match then sesinetd will mark those licenses as usable and all others as unusable. In the event the main license server goes down the DNS is switched over to the backup server. Note that switching to the backup server is done through some external process (i.e. the IT department or some automated process). The backup server will then do the DNS check validating all licenses that were previously only valid for the main server. Once the main server is operational again the DNS is switched back to the main server and the reverse happens to each of the licenses. Since sesinetd does the DNS check at an extended interval its recommended to force refresh the DNS check on the backup server once the switch occurs. Without the force refresh there may be a period where the backup server will mark the licenses as invalid.

To force refresh DNS check on a running server send a cmd_refresh_redundant command to sesinetd. Please see for details on how to send a request to sesinetd.

Warning

If a license is installed using the DNS name that license will only be usable for sesinetd version 19 and up as older sesinetd are not able to validate DNS names with licenses. If the license using a DNS name must be used with a server that is below 19 the license must be returned and reinstalled using an older hkey/sesictrl.

Stand-alone utilities

  • abcconvert

    Convert between Alembic formats.

  • abcecho

    Print information about an Alembic file.

  • abcinfo

    Print information about an Alembic file.

  • chchan

    Copies channel collection to/from action channel format.

  • chcp

    Copies channel collection file to another format.

  • chinfo

    Prints information about a channel collection file.

  • claudio

    Copies CHOP data (clip) to/from audio formats.

  • clchan

    Copies CHOP data (clip) to/from action channel format.

  • clchn

    Copies CHOP data (clip) to/from channel collection format.

  • clcp

    Copies CHOP data (clip) to another format.

  • clinfo

    Prints information about a CHOP data (clip) file.

  • dsmconvert

  • dsmmerge

  • dsparse

    Parses and displays dialog scripts.

  • gabc

    Convert between Alembic and Houdini geometry.

  • gconvert

    Convert between Houdini polygon formats.

  • gdxf

    Converts DXF polygons to/from Houdini format.

  • geodiff

    Display Geometry Differences.

  • geps

    Converts EPS files to Houdini polygon format.

  • giges

  • ginfo

    Prints polygon file statistics.

  • glightwave

    Converts LightWave files to/from Houdini format.

  • gpdb

    Converts .pdb files to/from Houdini format.

  • gplay

    Geometry viewer.

  • gply

    Converts .ply files to/from Houdini format.

  • gptex

    Makes a ptexture image file from a geometry file.

  • greduce

    Reduces polygons in a file.

  • gwavefront

    Converts .obj files to/from Houdini format.

  • hcollapse

    Collapses a directory structure.

  • hcpio

  • hexpand

    Expands hip files into a directory structure.

  • hkey / License Administrator

    Opens a graphical user interface for viewing and managing licenses and license server options.

  • hoiiotool

    Swiss-army knife of image operation tools.

  • hotl utility

    Command line utility to work with .hda/.otl files.

  • hrender

  • hsc

  • hscript

    Command line HScript interpreter.

  • hserver

    Houdini communicates through this proxy server to the sesinetd licensing daemon.

  • htexcache

    Query or modify the disk texture cache.

  • husk

    Command line utility for rendering a USD file using Karma or some other Hydra client.

  • i3dconvert

  • iautocrop

    Crops images based on pixel values.

  • icineon

    Convert images from 10-bit Cineon format to an 8 bit format.

  • icomposite

  • iconvert

    Converts an image of one type to another type.

  • icp

    Isolate a region of an image in a new image.

  • idenoise

    Removes noise from an image file.

  • idiff

    Display Image Differences.

  • iflip - Flip Image

  • iinfo

    Outputs information about an image.

  • ilut

    Generates a lookup table (LUT) from standard channel formats or another LUT.

  • ilutcomp

    Generates a single lookup table (LUT) from from two LUTs.

  • ilutinfo

    Prints information about a lookup table (LUT) file.

  • imaketx

    Creates mipmapped .exr or .rat textures from image files.

  • imdisplay

    Sends an image to an mdisplay window.

  • iprint

    Prints the RGBA values for an image as text.

  • iquantize

    Reduces the number of colors in an image.

  • isixpack

    Generates an environment/reflection map from six images representing the six sides of a cube, or a cross image.

  • itilestitch

    Assemble a series of image files with crop windows into a single image.

  • izg

    Converts Z-depth images to 8-bit grayscale images.

  • Launcher

    The Houdini Launcher downloads, installs, upgrades, and uninstall Houdini and its components.

  • mcacclaim

    Converts an Acclaim motion file to a Houdini script and channel file(s).

  • mcbiovision

    Converts a BioVision motion file to a Houdini script and channel file(s).

  • mcmotanal

    Converts a Motion Analysis TRC motion file to a Houdini script and channel file(s).

  • mcp

    Convert an image sequence to a movie file.

  • minfo

    Prints information about movie files.

  • mqserver

    Message Queue Server for PDG/TOPs

  • py23convert

    Convert Python 2 expressions in HDAs to Python 2/3.

  • renderstatsoverlay

    Generates a (possibly scaled down) version of a rendered image with render statistics baked in.

  • renderstatsreport

    Generates an HTML page containing render statistics from an EXR image.

  • sesictrl

    Sets Houdini license server options from the command line.

  • sesinetd

    The Houdini license server. This program runs in the background managing Houdini licenses.

  • siminfo

    Prints simulation cache file statistics.

  • spiff

    Display Text Differences.

  • spy

    Shell utility for navigating the UNIX filesystem.

  • usdview

    Command line utility for viewing and inspecting USD scenes.

  • vexcache

    Query or modify the VEX compile cache.

  • vexexec

    Execute a cvex shader.