NAME | SYNOPSIS | DESCRIPTION | OPTIONS | STARTUP | NOTIFICATION | CONNECT-TIME | SIGNALS | FILES | ATTRIBUTES | SEE ALSO | DIAGNOSTICS | NOTES
limdaemon is the Solaris Resource Manager user-mode daemon, invoked soon after boot from the script /etc/init.d/init.srm (see init.d(4)), typically just before srmadm is invoked to configure and enable Solaris Resource Manager. It performs the following functions:
Receives notification messages, translates them into human-readable text, and delivers them to the terminals of the destination users
Receives any login/logout messages, maintaining an exact record of all login sessions currently in progress
Periodically updates the connect-time usages in the terminal device category for all users with login sessions currently in progress
Detects users who have reached their connect-time limit and logs them out
Logs actions through syslog and allows messages to be tagged with a priority and prepended with a tag
Suppress the update of terminal connect-time usage. This implies -e.
Decay connect-time usages for all terminals of logged-in users, using the argument of the -t option (default 1 minute) as the interval between decays.
Decay connect-time usages for all terminals of all users once every n minutes.
Suppress enforcement of terminal connect-time limits.
Allow a grace time of n seconds (default 30) after a user's terminal connect-time limit is reached before forcefully logging them out.
Terminate the currently running limdaemon. This is done by sending it a SIGTERM signal.
Attach a user-supplied tag to every line of text added to the system log.
Enter the message to the system log with the specified priority. The priority can be specified as a numeric or as a facility.level pair. The default priority is user.notice. Error messages generated by limdaemon itself are logged with priority daemon.error.
Update the terminal connect-time usage and accrue attributes in all lnodes of logged-in users once every n minutes (default 1). Zero is not allowed.
Give users a warning message, warn minutes (default 5) prior to an impending logout due to expiration of connect-time.
When limdaemon is started, it immediately forks and the parent exits. It is not necessary to follow its invocation with a shell & character. The process ID is written in ASCII to the /var/run/.limdaemon.lock file for Solaris Resource Manager 1.2 and Solaris Resource Manager 1.3. The process ID is written in ASCII to the /tmp/.limdaemon.lock file for Solaris Resource Manager 1.0 and Solaris Resource Manager 1.1. The child process detaches itself from the controlling terminal and places itself in a process group of its own, cutting itself off from keyboard-generated interrupts. When limdaemon opens and writes a notification message to syslog, it deliberately prevents the device from becoming its controlling terminal.
limdaemon writes audit information to syslog. The -p and -m options allow message priorities as well as specified tags to be added to the audit trail.
Message priorities can be specified as a numeric or as a facility.level pair. The facility identifies the part of the system generating the message, and the level indicates the level of priority. The default priority is user.notice. Every line added to the log can be prepended with a user-supplied tag.
A notification message contains two UIDs: the user who caused the message, and that of the lnode whose limit was reached. limdaemon delivers the message to the terminals of all logged-in members and the group header of the scheduling group headed by the limiting lnode. Messages that are declared with the useronly condition are delivered only to the terminals of the user who causes the message.
Login operations cause limdaemon to receive a special login message, containing a process ID and the cost of the device on which the login was established. The process performing the login operation is marked by Solaris Resource Manager as a login header process. If that process dies, moves to a different lnode, or initiates another login operation, a matching logout message is received.
limdaemon maintains in memory an exact record of all current login header processes and their costs, which it uses to update users' connect-time usages. If limdaemon terminates for any reason, this information is lost.
limdaemon wakes up once every 60 seconds (or as specified by the -t option) to accumulate the connect-time usage of each user currently logged in, in proportion to the sum of the costs of all devices to which the user is connected. If the -c option is not given, the accumulated usage of each user is added into each lnode.
limdaemon also decays connect-time usages for all device categories if the -d option is specified.
limdaemon also decays connect-time usages for all terminals if the -d option or the -D option is specified. The -d option will cause only logged-in users to have usages decayed. These decays occur whenever limdaemon accumulates connect-time usage (specified by the -t option). The -D option will decay usages for all lnodes, which can be expensive for systems with many users.
Unless the -e option is given, when users reach their connect-time limits, limdaemon sends them a notification message asking them to log out. After a grace time of 30 seconds, or as specified by the -g option, limdaemon sends a SIGTERM signal to all processes attached to the user's lnode; then, after a further delay of 15 seconds, a SIGKILL signal is sent.
limdaemon is informed of all terminal attribute changes that may affect its internal information whenever it receives a special lnode change message, sent by another user-mode program. It is the responsibility of all user programs that change attribute values to send the correct lnode change message if an attribute requires one. By convention, all such attributes are declared with the daemon condition in the configuration file. Each lnode change message contains the UID of the changed lnode. limdaemon re-fetches the given lnode and re-reads the values of all attributes that concern it. This means that a single message will serve to notify limdaemon of more than one attribute change.
limdaemon traps and ignores most signals, logging them in syslog. If limdaemon receives a SIGHUP signal, it re-reads the configuration file. If the re-read fails, limdaemon continues execution, but will fail to deliver messages and update connect-time usages until receiving another SIGHUP signal and successfully re-reading the configuration file. If limdaemon receives a SIGUSR1 signal, it dumps a list of all currently known login header processes to syslog. If limdaemon receives a SIGTERM signal, it shuts down in an orderly fashion.
System console device.
The password file.
The user log file.
The .limdaemon.lock file is an ASCII string that corresponds to the process ID of the currently running limdaemon. It can be created in the /var/run/.limdaemon.lock file for Solaris Resource Manager 1.2 and Solaris Resource Manager 1.3, and in the /tmp/.limdaemon lock file for Solaris Resource Manager 1.0 and Solaris Resource Manager 1.1.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | SPARC |
Availability | SUNWsrmb |
logger(1), syslogd(1M), kill(2), syslog(3C), init.d(4), limadm(1MSRM), srm(5SRM)
Solaris Resource Manager 1.3 System Administration Guide
All error messages are written to the system log file or to the system console.
This man page is applicable to SunOS 5.6, SunOS 5.7, and SunOS 5.8.
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | STARTUP | NOTIFICATION | CONNECT-TIME | SIGNALS | FILES | ATTRIBUTES | SEE ALSO | DIAGNOSTICS | NOTES