1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
.\" This file was generated by (a slightly modified) kdemangen.pl and edited by hand
.TH TDMCTL 1 "June 2006" "K Desktop Environment" "TDM remote control application"
.SH NAME
tdmctl
\- tdm remote control application
.SH SYNOPSIS
\fBtdmctl\fP [options] [command [command arguments]]
.SH DESCRIPTION
\fBtdmctl\fP is an application to remote\-control \fBtdm\fP. It makes use of UNIX domain sockets.
.sp 1
There are two types of sockets: the global one (dmctl) and the per\-display ones (dmctl\-<display>). The global one's subdir is owned by root, the subdirs of the per\-display ones' are owned by the user currently owning the session (root or the logged in user).
.sp 1
The directory in which the sockets are located is determined this way:
.RS 3
\- the \fB\-s\fP option is examined
.br
\- the $DM_CONTROL variable is examined
.br
\- the tdm config file is searched for the FifoDir key
.br
.RI \- /var/run/xdmctl \ and\ /var/run \ are\ tried
.RE
.sp 1
If $DISPLAY is set (or \fB\-d\fP was specified) and \fB\-g\fP was not specified, the
display\-specific control socket will be used, otherwise the global one.
.sp 1
Tokens in the command and the reply are tab\-separated.
Command arguments can be specified as separate command line parameters,
in which case they are simply concatenated with tabs in between.
.sp 1
If the command is '\-', \fBtdmctl\fP reads commands from stdin.
The default command is 'caps'.
.SH OPTIONS
.SS
.SS Options:
.TP
.B \-h \-help
print help message.
.TP
.B \-g \-global
Use global control socket even if $DISPLAY is set
.TP
.B \-d \-display
Override $DISPLAY
.TP
.B \-s \-sockets
Override $DM_CONTROL
.TP
.B \-c \-config
Use alternative tdm config file
.SS Commands:
.br
.SS Global commands:
.TP
.B login
display (now|schedule) user password [session_arguments]
.br
login user at specified display. if "now" is specified, a possibly running session is killed, otherwise the login is done after the session exits.
.br
session_arguments are printf\-like escaped contents for \fI.dmrc\fP. Unlisted keys will default to previously saved values.
.SS Per\-display commands:
.TP
.B lock
The display is marked as locked. If the X\-Server crashes in this state, no auto\-relogin will be performed even if the option is on.
.TP
.B unlock
Reverse the effect of "lock": re\-enable auto\-relogin.
.TP
.B suicide
The currently running session is forcibly terminated. No auto\-relogin is attempted, but a scheduled "login" command will be executed.
.SS Commands for all sockets:
.TP
.B caps
Returns a list of this socket's capabilities:
.IP " \- tdm"
identifies tdm, in case some other DM implements this protocol, too.
.IP " \- list, activate, lock, suicide, login"
the respective command is supported.
.IP " \- bootoptions"
the "listbootoptions" command and the "=" option to "shutdown" are supported.
.IP " \- shutdown <list>"
"shutdown" is supported and allowed to the listed users (comma\-separated). "*" means all authenticated users.
.IP " \- shutdown"
"shutdown" is supported and allowed to everybody.
.IP " \- nuke <list>"
forced shutdown is allowed to the listed users.
.IP " \- nuke"
forced shutdown is allowed to everybody.
.IP " \- reserve <number>"
reserve displays are configured and <number> are available at this time.
.TP
\fBlist\fP [all|alllocal]
.br
Return a list of running sessions. By default all active sessions are listed. If "all" is specified, passive sessions are listed as well. If "alllocal" is specified, passive sessions are listed as well, but all incoming remote sessions are skipped.
.sp 1
Each session entry is a comma\-separated tuple of:
.RS 7
\- Display or TTY name
.br
\- VT name for local sessions
.br
\- Logged in user's name, empty for passive sessions and outgoing
.br
remote sessions (local chooser mode)
.br
\- Session type or remote host for outgoing remote sessions,
.br
empty for passive sessions
.br
\- A flag field:
.RS 5
\- "t" for tty sessions
.br
\- "*" for the display belonging to the requesting socket
.br
\- "!" for sessions that cannot be killed by the requesting
.br
socket
.br
\- New flags might be added later
.br
.RE
\- New fields might be added later
.RE
.TP
\fBreserve\fP [timeout in seconds]
.br
Start a reserve login screen. If nobody logs in within the specified amount of time (one minute by default), the display is removed again. When the session on the display exits, the display is removed, too.
.br
Permitted only on sockets of local displays and the global socket.
.TP
\fBactivate\fP (vt|display)
.br
Switch to a particular VT (virtual terminal). The VT may be specified either directly (e.g., vt3) or by a display using it (e.g., :2).
.br
Permitted only on sockets of local displays and the global socket.
.TP
.B listbootoptions
List available boot options.
.br
=> "ok" list default current default and current are indices into the list and are \-1 if unset or undeterminable.
.TP
\fBshutdown\fP (reboot|halt) [=bootchoice]
.br
(ask|trynow|forcenow|schedule|start
.br
(\-1|end (force|forcemy|cancel)))
.br
.RS 7
Request a system shutdown, either a reboot or a halt/poweroff.
.sp 1
An OS choice for the next boot may be specified from the list returned by "listbootoptions".
.sp 1
Shutdowns requested from per\-display sockets are executed when the current session on that display exits. Such a request may pop up a dialog asking for confirmation and/or authentication.
.sp 1
start is the time for which the shutdown is scheduled. If it starts with a plus\-sign, the current time is added. Zero means immediately.
.sp 1
end is the latest time at which the shutdown should be performed if active sessions are still running. If it starts with a plus\-sign, the start time is added. Minus one means wait infinitely. If end is through and active sessions are still running, \fBTDM\fP can do one of the following:
.RS 3
- "cancel" \- give up the shutdown.
.br
- "force" \- shut down nonetheless.
.br
- "forcemy" \- shut down nonetheless if all active sessions
.br
belong to the requesting user. Only for per\-display sockets.
.RE
.sp 1
start and end are specified in seconds since the UNIX epoch.
.sp 1
"trynow" is a synonym for "0 0 cancel", "forcenow" for "0 0 force" and "schedule" for "0 \-1".
.sp 1
"ask" attempts an immediate shutdown and interacts with the user if active sessions are still running. Only for per\-display sockets.
.RE
.TP
\fBshutdown cancel\fP [local|global]
.br
Cancel a scheduled shutdown. The global socket always cancels the currently pending shutdown, while per\-display sockets default to cancelling their queued request.
.TP
\fBshutdown status\fP
Return a list with information about shutdowns.
.br
The entries are comma\-separated tuples of:
.RS 10
\- ("global"|"local") \- pending vs. queued shutdown. A local
.br
entry can be returned only by a per\-display socket.
.br
\- ("halt"|"reboot")
.br
\- start
.br
\- end
.br
\- ("ask"|"force"|"forcemy"|"cancel")
.br
\- Numeric user ID of the requesting user, \-1 for the global
.br
socket.
.br
\- The next boot OS choice or "\-" for none.
.br
\- New fields might be added later.
.RE
.SH SEE ALSO
.BR tdm (1)
.TP
.I /opt/trinity/share/doc/tdm/README.gz
Information about the command sockets (and \fBtdm\fP)
.SH AUTHORS
.nf
Oswald Buddenhagen <[email protected]>
.br
.fi
Please use http://bugs.kde.org to report bugs; do not mail the authors directly.
.PP
This manual page was written by Holger Hartmann <[email protected]> for the Debian Project (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation.
.PP
On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common\-licenses/GPL.
|