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.