2
0

dinitctl.8.m4 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. changequote(`@@@',`$$$')dnl
  2. @@@.TH DINITCTL "8" "$$$MONTH YEAR@@@" "Dinit $$$VERSION@@@" "Dinit \- service management system"
  3. .SH NAME
  4. dinitctl \- control services supervised by Dinit
  5. .\"
  6. .SH SYNOPSIS
  7. .\"
  8. .PD 0
  9. .nh
  10. .HP
  11. .B dinitctl
  12. [\fIoptions\fR] \fBstart\fR [\fB\-\-no\-wait\fR] [\fB\-\-pin\fR] \fIservice-name\fR
  13. .HP
  14. .B dinitctl
  15. [\fIoptions\fR] \fBstop\fR [\fB\-\-no\-wait\fR] [\fB\-\-pin\fR] [\fB\-\-ignore\-unstarted\fR] \fIservice-name\fR
  16. .HP
  17. .B dinitctl
  18. [\fIoptions\fR] \fBstatus\fR \fIservice-name\fR
  19. .HP
  20. .B dinitctl
  21. [\fIoptions\fR] \fBis\-started\fR \fIservice-name\fR
  22. .HP
  23. .B dinitctl
  24. [\fIoptions\fR] \fBis\-failed\fR \fIservice-name\fR
  25. .HP
  26. .B dinitctl
  27. [\fIoptions\fR] \fBrestart\fR [\fB\-\-no\-wait\fR] [\fB\-\-ignore\-unstarted\fR] \fIservice-name\fR
  28. .HP
  29. .B dinitctl
  30. [\fIoptions\fR] \fBwake\fR [\fB\-\-no\-wait\fR] \fIservice-name\fR
  31. .HP
  32. .B dinitctl
  33. [\fIoptions\fR] \fBrelease\fR [\fB\-\-ignore\-unstarted\fR] \fIservice-name\fR
  34. .HP
  35. .B dinitctl
  36. [\fIoptions\fR] \fBunpin\fR \fIservice-name\fR
  37. .HP
  38. .B dinitctl
  39. [\fIoptions\fR] \fBunload\fR \fIservice-name\fR
  40. .HP
  41. .B dinitctl
  42. [\fIoptions\fR] \fBreload\fR \fIservice-name\fR
  43. .HP
  44. .B dinitctl
  45. [\fIoptions\fR] \fBlist\fR
  46. .HP
  47. .B dinitctl
  48. [\fIoptions\fR] \fBshutdown\fR
  49. .HP
  50. .B dinitctl
  51. [\fIoptions\fR] \fBadd-dep\fR \fIdependency-type\fR \fIfrom-service\fR \fIto-service\fR
  52. .HP
  53. .B dinitctl
  54. [\fIoptions\fR] \fBrm-dep\fR \fIdependency-type\fR \fIfrom-service\fR \fIto-service\fR
  55. .HP
  56. .B dinitctl
  57. [\fIoptions\fR] \fBenable\fR [\fB\-\-from\fR \fIfrom-service\fR] \fIto-service\fR
  58. .HP
  59. .B dinitctl
  60. [\fIoptions\fR] \fBdisable\fR [\fB\-\-from\fR \fIfrom-service\fR] \fIto-service\fR
  61. .HP
  62. .B dinitctl
  63. [\fIoptions\fR] \fBtrigger\fR \fIservice-name\fR
  64. .HP
  65. .B dinitctl
  66. [\fIoptions\fR] \fBuntrigger\fR \fIservice-name\fR
  67. .HP
  68. .B dinitctl
  69. [\fIoptions\fR] \fBsetenv\fR [\fIname\fR[=\fIvalue\fR] \fI...\fR]
  70. .HP
  71. .B dinitctl
  72. [\fIoptions\fR] \fBunsetenv\fR [\fIname\fR \fI...\fR]
  73. .HP
  74. .B dinitctl
  75. [\fIoptions\fR] \fBcatlog\fR [\fB--clear\fR] \fIservice-name\fR
  76. .HP
  77. .B dinitctl
  78. [\fIoptions\fR] \fBsignal\fR { \fIsignal-id\fR \fIservice-name\fR | \fB\-\-list\fR | \fB-l\fR }
  79. .\"
  80. .PD
  81. .hy
  82. .\"
  83. .SH DESCRIPTION
  84. .\"
  85. \fBdinitctl\fR is a utility to control services being managed by the
  86. \fBdinit\fR daemon.
  87. It allows starting and stopping services, and listing service status, amongst other actions.
  88. It functions by issuing commands to the daemon via a control socket.
  89. .\"
  90. .SH GENERAL OPTIONS
  91. .TP
  92. \fB\-\-help\fR
  93. Display brief help text and then exit.
  94. .TP
  95. \fB\-\-version\fR
  96. Display version and then exit.
  97. .TP
  98. \fB\-s\fR, \fB\-\-system\fR
  99. Control the system init process (this is the default when run as root).
  100. This option determines the default path to the control socket used to communicate with the \fBdinit\fR daemon
  101. process (it does not override the \fB\-p\fR option).
  102. .TP
  103. \fB\-u\fR, \fB\-\-user\fR
  104. Control the user init process (this is the default when not run as root).
  105. This option determines the default path to the control socket used to communicate with the \fBdinit\fR daemon process
  106. (it does not override the \fB\-p\fR option).
  107. .TP
  108. \fB\-\-socket\-path\fR \fIsocket-path\fR, \fB\-p\fR \fIsocket-path\fR
  109. Specify the path to the socket used for communicating with the service manager daemon.
  110. When not specified, the value from the \fBDINIT_SOCKET_PATH\fR environment variable is used, with
  111. the default path (as documented for \fBdinit\fR(8)) used if the variable is unset.
  112. .TP
  113. \fB\-\-use\-passed\-cfd\fR
  114. Instead of attempting to open a socket connection to the service daemon,
  115. use a pre-opened connection that has been passed to the dinitctl process from its parent
  116. via an open file descriptor.
  117. The file descriptor with the connection is identified by the contents of the DINIT_CS_FD
  118. environment variable.
  119. .TP
  120. \fB\-\-quiet\fR
  121. Suppress status output, except for errors.
  122. .TP
  123. \fB\-\-offline\fR, \fB\-o\fR
  124. Work "offline", without communicating with the \fBdinit\fR daemon.
  125. This is applicable only for the \fBenable\fR and \fBdisable\fR subcommands.
  126. .TP
  127. \fB\-\-services\-dir\fR \fIdir\fP, \fB\-d\fR \fIdir\fP
  128. Specifies \fIdir\fP as the directory containing service description files (can
  129. be given multiple times to specify multiple service directories).
  130. Default directories are not searched for services when this option is provided.
  131. This option is ignored when \fB\-\-offline\fR (\fB\-o\fR) is not also specified (otherwise,
  132. \fBdinitctl\fR can query the \fBdinit\fR daemon for the service description directories).
  133. .\"
  134. .SH COMMAND OPTIONS
  135. .TP
  136. \fB\-\-no\-wait\fR
  137. Do not wait for issued command to complete; exit immediately.
  138. .TP
  139. \fB\-\-pin\fR
  140. Pin the service in the requested state. The service will not leave the state until it is unpinned.
  141. .IP
  142. A service that is pinned stopped cannot be marked active, that is, start commands issued to the
  143. service have no effect.
  144. Dependents (via hard dependency relationships) of the pinned service will be unable to start.
  145. .IP
  146. A service that is pinned started cannot be stopped, however its explicit activation can be removed
  147. (eg via the \fBstop\fR or \fBrelease\fR commands).
  148. Once unpinned, a service which is not explicitly activated, and which has no active dependents,
  149. will automatically stop. If a pinned-started service fails to start, the pin is removed.
  150. .IP
  151. Note that a pin takes effect while the service is starting/stopping, before it reaches the target
  152. state. Stopping or restarting a service that is pinned started and which is already starting or
  153. started is not possible.
  154. Similarly, starting a service which is pinned stopped and which is stopping or stopped is not possible.
  155. .TP
  156. \fB\-\-force\fR
  157. Stop the service even if it will require stopping other services which depend on the specified service.
  158. When applied to the \fBrestart\fR command, this will cause the dependent services to also be restarted.
  159. .TP
  160. \fB\-\-ignore\-unstarted\fR
  161. If the service is not started or doesn't exist, ignore the command and return an exit code indicating
  162. success.
  163. .TP
  164. \fB\-\-clear\fR
  165. Clear the log buffer for the service after displaying it.
  166. .TP
  167. \fIservice-name\fR
  168. Specifies the name of the service to which the command applies.
  169. It may have an argument that is passed to the service.
  170. .\"
  171. .SH COMMAND DESCRIPTIONS
  172. .\"
  173. .TP
  174. \fBstart\fR
  175. Start the specified service.
  176. The service is marked as explicitly activated and will not be stopped automatically if its dependents stop.
  177. If the service is currently stopping it will generally continue to stop before it is then restarted.
  178. .TP
  179. \fBstop\fR
  180. Stop the specified service, and remove explicit activation.
  181. If the service has (non-soft) dependents, an error will be displayed and no further action taken,
  182. unless the \fB\-\-force\fR option is used.
  183. If the service is pinned started (and not already stopped or stopping) an error will be displayed
  184. and no further action taken.
  185. .sp
  186. The \fBrestart\fR option (see \fBdinit-service\fR(5)) applied to the stopped service will not cause the
  187. service to restart when it is stopped via this command (that is, this command inhibits automatic restart).
  188. This also applies to any dependents that must also be stopped at the same time.
  189. .sp
  190. Any pending \fBstart\fR orders (including for restarts) are cancelled,
  191. though a service which is starting will continue its startup before then stopping (unless the service is
  192. configured to have an interruptible startup or is otherwise at a stage of startup which can be safely
  193. interrupted).
  194. .TP
  195. \fBstatus\fR
  196. Give a status report on the specified service.
  197. This will show the current state (and target state, if different), and information such as process
  198. ID (pid) if applicable.
  199. If the service is stopped for any reason other than a normal stop, the reason for the service
  200. stopping will be displayed (along with any further relevant information, if available).
  201. .TP
  202. \fBis\-started\fR
  203. Check if the specified service is currently started.
  204. Any other state (including if the service is currently starting or stopping) will exit without returning success.
  205. Unless \fB\-\-quiet\fR is specified, the current service status (STOPPED, STARTING, STARTED, STOPPING)
  206. will be printed to standard output.
  207. .TP
  208. \fBis\-failed\fR
  209. Check if the specified service is currently failed.
  210. The service counts as failed if it is known it is currently stopped either because of startup
  211. failure, timeout or dependency failure.
  212. Any other state, including protocol and parse errors, will exit without returning success.
  213. Unless \fB\-\-quiet\fR is specified, the current service status (STOPPED, STARTING, STARTED, STOPPING)
  214. will be printed to standard output.
  215. .TP
  216. \fBrestart\fR
  217. Restart the specified service. The service will be stopped and then restarted, without affecting explicit
  218. activation status.
  219. .TP
  220. \fBwake\fR
  221. Start the specified service.
  222. The service will not be marked explicitly activated, and so will stop if all the dependents stop.
  223. .TP
  224. \fBrelease\fR
  225. Clear the explicit activation mark from a service (the service will then stop if it has no active dependents).
  226. .TP
  227. \fBunpin\fR
  228. Remove start- and stop- pins from a service.
  229. If a started service is not explicitly activated and has no active dependents, it will stop.
  230. If a started service has a dependency service which is stopping, it will stop.
  231. If a stopped service has a dependent service which is starting, it will start.
  232. Otherwise, any pending start/stop commands will be carried out.
  233. .TP
  234. \fBunload\fR
  235. Completely unload a service.
  236. This can only be done if the service is stopped and has no loaded dependents (i.e. dependents must
  237. be unloaded before their dependencies).
  238. .TP
  239. \fBreload\fR
  240. Attempt to reload a service description.
  241. This is intended as a convenience for making simple changes to a service, without having to stop,
  242. remove dependencies to and unload the service. However it is not completely equivalent to doing a
  243. proper unload/reload; some altered settings may not take effect until the service is restarted,
  244. and some cannot be changed at all while the service is running.
  245. .IP
  246. In particular, the type of a running service cannot be changed; nor can the \fBinittab-id\fR, \fBinittab-line\fR,
  247. or \fBpid-file\fR settings, or the \fBruns-on-console\fR or \fBshares-console\fR flags.
  248. If any hard dependencies are added to a running service, the dependencies must already be started.
  249. .TP
  250. \fBlist\fR
  251. List loaded services and their state.
  252. Before each service, one of the following state indicators is displayed:
  253. .sp
  254. .EX
  255. \m[blue][{+}\ \ \ \ \ ]\m[]\fR \[em] service has started.
  256. \m[blue][{\ }<<\ \ \ ]\m[]\fR \[em] service is starting.
  257. \m[blue][\ \ \ <<{\ }]\m[]\fR \[em] service is starting, will stop once started.
  258. \m[blue][{\ }>>\ \ \ ]\m[]\fR \[em] service is stopping, will start once stopped.
  259. \m[blue][\ \ \ >>{\ }]\m[]\fR \[em] service is stopping.
  260. \m[blue][\ \ \ \ \ {-}]\m[]\fR \[em] service has stopped.
  261. .EE
  262. .sp
  263. The '<<' and '>>' symbols represent a transition state (starting and stopping respectively); curly braces
  264. indicate the target state (left: started, right: stopped); square brackets are used if the service
  265. is marked active (target state will always be started if this is the case).
  266. .IP
  267. An 's' in place of '+' means that the service startup was skipped (possible only if the service is
  268. configured as skippable).
  269. An 'X' in place of '-' means that the service failed to start, or that the
  270. service process unexpectedly terminated with an error status or signal while running.
  271. .IP
  272. Additional information, if available, will be printed after the service name: whether the service owns,
  273. or is waiting to acquire, the console; the process ID; the exit status or signal that caused termination.
  274. .TP
  275. \fBshutdown\fR
  276. Stop all services (without restart) and terminate Dinit.
  277. If issued to the system instance of Dinit, this will also shut down the system.
  278. .TP
  279. \fBadd-dep\fR
  280. Add a dependency between two services.
  281. The \fIdependency-type\fR must be one of \fBneed\fR, \fBmilestone\fR or \fBwaits-for\fR.
  282. Note that adding a \fBneed\fR dependency requires that the service states are consistent with the
  283. dependency (i.e. if the "from" service is started, the "to" service must also be started).
  284. Circular dependency chains may not be created.
  285. .IP
  286. The \fIdependency-type\fR \fBregular\fR is also supported, as a deprecated alias of \fBneed\fR.
  287. .TP
  288. \fBrm-dep\fR
  289. Remove a dependency between two services.
  290. The \fIdependency-type\fR must be one of \fBneed\fR, \fBmilestone\fR or \fBwaits-for\fR.
  291. If the "to" service is not otherwise active it may be stopped as a result of removing the dependency.
  292. .TP
  293. \fBenable\fR
  294. Persistently enable a \fBwaits-for\fR dependency between two services.
  295. This is much like \fBadd-dep\fR but it also starts the dependency if the dependent is started
  296. (without explicit activation, so the dependency will stop if the dependent stops), and it creates
  297. a symbolic link in the directory specified via the \fBwaits-for.d\fR directive in the service
  298. description (there must be only one such directive) so that the dependency will survive between
  299. sessions.
  300. .IP
  301. If the \fB--from\fR option is not used to specify the dependent, the dependency is created from the
  302. \fBboot\fR service by default.
  303. .TP
  304. \fBdisable\fR
  305. Permanently disable a \fBwaits-for\fR dependency between two services.
  306. This is the complement of the \fBenable\fR command; see the description above for more information.
  307. .IP
  308. Note that the \fBdisable\fR command affects only the dependency specified (or implied).
  309. It has no other effect, and a service that is "disabled" may still be started if it is a dependency of
  310. another started service.
  311. .TP
  312. \fBtrigger\fR
  313. Mark the specified service (which must be a \fItriggered\fR service) as having its external trigger set.
  314. This will allow the service to finish starting.
  315. .TP
  316. \fBuntrigger\fR
  317. Clear the trigger for the specified service (which must be a \fItriggered\fR service).
  318. This will delay the service from starting, until the trigger is set.
  319. If the service has already started, this will have no immediate effect.
  320. .TP
  321. \fBsetenv\fR
  322. Export one or more variables into the activation environment.
  323. The value can be provided on the command line or retrieved from the environment \fBdinitctl\fR is
  324. called in.
  325. Any subsequently started or restarted service will have these environment variables available.
  326. This is particularly useful for user services that need access to session information.
  327. .TP
  328. \fBunsetenv\fR
  329. Unset one or more variables in the activation environment.
  330. Any subsequently started or restarted service will have these environment variables unset.
  331. .TP
  332. \fBcatlog\fR
  333. Show the contents of the log buffer for the named service.
  334. This is possible only if the log type of the service is set to \fBbuffer\fR.
  335. If the log is truncated or appears incomplete, a warning message follows the output.
  336. If the \fB\-\-clear\fR option is specified, the buffer is cleared after displaying its contents.
  337. .TP
  338. \fBsignal\fR
  339. Send a signal to the process associated with the specified service.
  340. The \fIsignal-id\fR can either be specified as an integer or signal name (standard POSIX name
  341. minus the \fBSIG\fR- prefix; a limited selection of signal names are recognised, including
  342. \fBTERM\fR, \fBHUP\fR, and \fBKILL\fR).
  343. The \fB--list\fR (\fB-l\fR) option can be used (without \fIsignal-id\fR and \fIservice-name\fR)
  344. to list the full set of supported signal names.
  345. .\"
  346. .SH SERVICE OPERATION
  347. .\"
  348. Normally, services are only started if they have been explicitly activated (\fBstart\fR command) or if
  349. a started service depends on them.
  350. Therefore, starting a service also starts all services that the first depends on; stopping the
  351. same service then also stops the dependency services, unless they are also required by another
  352. explicitly activated service or have been explicitly activated themselves.
  353. .LP
  354. A service can be pinned in either the started or stopped state.
  355. This is mainly intended to be used to prevent automated stop or start of a service, including
  356. via a dependency or dependent service, during a manual administrative procedure.
  357. .LP
  358. Stopping a service manually will prevent it (and its dependents) from automatically restarting (i.e. it
  359. will override the \fBrestart\fR setting in the service configuration).
  360. .\"
  361. .SH ENVIRONMENT VARIABLES
  362. .\"
  363. The following environment variables may control \fBdinitctl\fR's operation:
  364. .TP
  365. \fBDINIT_SOCKET_PATH\fR
  366. The path to the socket used to communicate with the \fBdinit\fR(8) daemon. May be overridden by certain
  367. command line options. If not set, and not overridden, the \fBdinit\fR defaults are used.
  368. .\"
  369. .SH SEE ALSO
  370. \fBdinit\fR(8), \fBdinit-service\fR(5), \fB$$$SHUTDOWN_PREFIX@@@shutdown(8)\fR.
  371. .\"
  372. .SH AUTHOR
  373. Dinit, and this manual, were written by Davin McCall.
  374. $$$dnl