nSystemctlCommandsUnit.sh 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576
  1. #!/bin/bash
  2. source "sSystemctl.sh"
  3. MARK(){ $e "\e[1;35m";}
  4. #
  5. HEAD()
  6. {
  7. for (( a=2; a<=40; a++ ))
  8. do
  9. TPUT $a 1
  10. $E "\e[35m\xE2\x94\x82 \xE2\x94\x82\e[0m";
  11. done
  12. TPUT 1 1;$E "\033[0m\033[35m┌────────────────────────────────────────────────────────────────────────────────┐\033[0m";
  13. TPUT 2 3;$E "\e[36mCommands Unit Команды юнитов (самоанализ и модификация)\e[0m";
  14. TPUT 3 1;$E "\e[35m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
  15. TPUT 4 3;$E "\e[35mList Cписок\e[0m";
  16. TPUT 10 1;$E "\e[35m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
  17. TPUT 11 3;$E "\e[35mIs Проверка\e[0m";
  18. TPUT 15 1;$E "\e[35m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
  19. TPUT 39 1;$E "\033[35m├─ Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter ─────────────────────────────────────────────────────┤\e[0m";
  20. }
  21. FOOT(){ MARK;TPUT 41 1;$E "\033[0m\033[35m└────────────────────────────────────────────────────────────────────────────────┘\033[0m";UNMARK;}
  22. #
  23. M0(){ TPUT 5 3; $e "Посмотреть все службы (юниты), аналог опции -t \e[33m list-units [PATTERN...] \e[0m";}
  24. M1(){ TPUT 6 3; $e "Вывод содержит следующие столбцы: ";}
  25. M2(){ TPUT 7 3; $e "увидеть дерево зависимостей модуля \e[33m list-dependencies [UNIT...] \e[0m";}
  26. M3(){ TPUT 8 3; $e "посмотреть все службы сокетов \e[32m list-sockets [PATTERN...] \e[0m";}
  27. M4(){ TPUT 9 3; $e "Список единиц таймера, находящихся в памяти \e[32m list-timers [PATTERN...] \e[0m";}
  28. #
  29. M5(){ TPUT 12 3; $e "Проверьте, активны ли какие-либо из указанных устройств \e[33m is-active PATTERN.. \e[0m";}
  30. M6(){ TPUT 13 3; $e "Проверьте, находится ли из устройств в состоянии «сбой»\e[33m is-failed PATTERN... \e[0m";}
  31. M7(){ TPUT 14 3; $e "Проверить, включен ли сервис для автозапуска при загрузке системы\e[33m is-enabled \e[0m";}
  32. #
  33. M8(){ TPUT 16 3; $e "посмотреть параметры управления службой в Linux \e[33m show [PATTERN...|JOB...] \e[0m";}
  34. M9(){ TPUT 17 3; $e "Отображение файла модуля \e[33m cat PATTERN... \e[0m";}
  35. M10(){ TPUT 18 3; $e "Показать справочные страницы устройст \e[32m help PATTERN...|PID... \e[0m";}
  36. M11(){ TPUT 19 3; $e "Команда для отображения текущего набора значений \e[32m systemctl --state=help \e[0m";}
  37. M12(){ TPUT 20 3; $e "Запустить (активировать) один или несколько юнитов \e[33m start PATTERN... \e[0m";}
  38. M13(){ TPUT 21 3; $e "Остановить (деактивировать) один или несколько юнитов \e[33m stop PATTERN... \e[0m";}
  39. M14(){ TPUT 22 3; $e "обновить конфигурацию службы из файла юнита \e[33m reload PATTERN.. \e[0m";}
  40. M15(){ TPUT 23 3; $e "Перезапустить работающую службу \e[33m restart PATTERN.. \e[0m";}
  41. M16(){ TPUT 24 3; $e "перезапустить службу, только если она запущена \e[32m try-restart PATTERN \e[0m";}
  42. M17(){ TPUT 25 3; $e "обновить конфигурацию и выполнить перезапуск \e[33m reload-or-restart PATTERN \e[0m";}
  43. M18(){ TPUT 26 3; $e "Перезагрузите один или несколько юнитов \e[32m try-reload-or-restart PATTERN... \e[0m";}
  44. M19(){ TPUT 27 3; $e "запустить только одну службу вместе с ее зависимостями \e[33m isolate UNIT \e[0m";}
  45. M20(){ TPUT 28 3; $e "отправить сигнал завершения процессу \e[32m kill PATTERN... \e[0m";}
  46. M21(){ TPUT 29 3; $e "Удалите конфигурацию, состояние, кеш, журналы ... \e[32m clean PATTERN... \e[0m";}
  47. M22(){ TPUT 30 3; $e "Заморозить один или несколько юнитов \e[32m freeze PATTERN... \e[0m";}
  48. M23(){ TPUT 31 3; $e "Разморозить (разморозить) один или несколько юнитов \e[32m thaw PATTERN... \e[0m";}
  49. M24(){ TPUT 32 3; $e "Задайте указанные свойства модуля \e[32m set-property UNIT PROPERTY=VALUE... \e[0m";}
  50. M25(){ TPUT 33 3; $e "Привязывает файл или каталог с хоста к пространству \e[32m bind UNIT PATH [PATH] \e[0m";}
  51. M26(){ TPUT 34 3; $e "Подключает образ\e[32m mount-image UNIT IMAGE [PATH[PARTITION_NAME:MOUNT_OPTIONS]] \e[0m";}
  52. M27(){ TPUT 35 3; $e "Pаспечатайте уровень журнала \e[32m service-log-level SERVICE [LEVEL] \e[0m";}
  53. M28(){ TPUT 36 3; $e "Pаспечатайте текущую цель журнала \e[32m service-log-target SERVICE [TARGET] \e[0m";}
  54. M29(){ TPUT 37 3; $e "перезапустить службы linux, завершившиеся с ошибкой\e[32m reset-failed [PATTERN..] \e[0m";}
  55. M30(){ TPUT 38 3; $e "Показать инфу о состоянии выполнения устройств \e[33m status [PATTERN...|PID...]] \e[0m";}
  56. #
  57. M31(){ TPUT 40 3; $e "Выход \e[36m Exit \e[0m";}
  58. LM=31
  59. MENU(){ for each in $(seq 0 $LM);do M${each};done;}
  60. POS(){ if [[ $cur == up ]];then ((i--));fi
  61. if [[ $cur == dn ]];then ((i++));fi
  62. if [[ $i -lt 0 ]];then i=$LM;fi
  63. if [[ $i -gt $LM ]];then i=0;fi;}
  64. REFRESH(){ after=$((i+1)); before=$((i-1))
  65. if [[ $before -lt 0 ]];then before=$LM;fi
  66. if [[ $after -gt $LM ]];then after=0;fi
  67. if [[ $j -lt $i ]];then UNMARK;M$before;else UNMARK;M$after;fi
  68. if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
  69. UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
  70. INIT(){ R;HEAD;FOOT;MENU;}
  71. SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
  72. # Функция возвращения в меню
  73. ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  74. while [[ "$O" != " " ]]; do case $i in
  75. 0) S=M0;SC; if [[ $cur == enter ]];then R;echo -e "
  76. Список единиц, которые systemd в данный момент имеет в памяти.
  77. Сюда входят модули, на которые ссылаются напрямую или через зависимость, модули,
  78. которые программно закреплены приложениями, или модули, которые были активны в
  79. прошлом и вышли из строя.
  80. По умолчанию отображаются только блоки, которые активны, имеют ожидающие задания
  81. или отказали; это можно изменить опцией --all.
  82. Если указан один или несколько ШАБЛОНОВ, отображаются только единицы,
  83. соответствующие одному из них. Отображаемые единицы дополнительно фильтруются
  84. параметрами --typeu003d и --stateu003d, если эти параметры указаны.
  85. Обратите внимание, что эта команда не показывает шаблоны юнитов,
  86. а только экземпляры шаблонов юнитов.
  87. Шаблоны юнитов, экземпляры которых не созданы, не могут быть запущены
  88. и следовательно, никогда не будут отображаться в выводе этой команды.
  89. В частности, это означает, что foo@.service никогда не будет отображаться в этом
  90. списке, если не создан экземпляр, например, как foo@bar.service
  91. Используйте list-unit-files
  92. Показать:
  93. \e[32m systemctl\e[0m
  94. получить список служб linux, в который входят все службы:
  95. \e[32m systemctl list-units --type service -all\e[0m
  96. \e[32m systemctl list-units\e[0m
  97. Показать все сервисы:
  98. \e[32m systemctl list-unit-files -t service\e[0m
  99. или
  100. \e[32m systemctl list-units --type service\e[0m
  101. ";ES;fi;;
  102. 1) S=M1;SC;if [[ $cur == enter ]];then R;echo -e "
  103. Вывод содержит следующие столбцы:
  104. \e[32m UNIT\e[0m имя модуля systemd
  105. \e[32m LOAD\e[0m указывает на то, парсила ли systemd конфигурацию модуля.
  106. Конфигурация загруженных модулей сохраняется в памяти.
  107. \e[32m ACTIVE\e[0m краткое состояние активности модуля. Обычно это довольно стандартный
  108. способ сообщить, запущен модуль или нет.
  109. \e[32m SUB\e[0m это состояние более низкого уровня, которое указывает более подробную
  110. информацию о модуле. Это часто зависит от типа модуля, состояния и
  111. фактического метода работы модуля.
  112. \e[32m DESCRIPTION\e[0m краткое текстовое описание того, чем является модуль/что делает.
  113. Перечислено 123 загруженных единицы. Передайте --all, чтобы увидеть загруженные,
  114. но неактивные юниты. Чтобы показать все установленные юнит-файлы,
  115. используйте «systemctl list-unit-files».
  116. Заголовок и последняя единица данного типа подчеркнуты,
  117. если терминал поддерживает это.
  118. Цветная точка отображается рядом со службами, которые были замаскированы,
  119. не найдены или по какой-либо иной причине не удались.
  120. Столбец LOAD показывает состояние загрузки:
  121. загружено не найдено неправильная настройка ошибка замаскировано.
  122. loaded not-found bad-setting error masked
  123. Столбцы ACTIVE показывают общее состояние устройства, одно из следующих:
  124. active reloading inactive failed activating deactivating
  125. активно перезагружается неактивнo сбой активация деактивация.
  126. Столбец SUB показывает подробное состояние устройства для конкретного типа
  127. устройства, возможные значения зависят от типа устройства.
  128. Список возможных состояний LOAD, ACTIVE и SUB не является постоянным,
  129. и новые выпуски systemd могут как добавлять, так и удалять значения.
  130. ";ES;fi;;
  131. 2) S=M2;SC;if [[ $cur == enter ]];then R;echo -e "
  132. Показывает юниты, требуемые и разыскиваемые указанными юнитами:
  133. \e[32m systemctl list-dependencies bluetooth.service\e[0m
  134. Это рекурсивно перечисляет единицы, следующие за зависимостями:
  135. Requiresu003d, Requisiteu003d, ConsistsOfu003d, Wantsu003d, BindsTou003d.
  136. Если единицы не указаны, подразумевается default.target.
  137. По умолчанию рекурсивно расширяются только целевые единицы.
  138. Когда передается --all, все остальные модули также рекурсивно расширяются.
  139. Опции: --reverse, --after, --before
  140. могут использоваться для изменения отображаемых типов зависимостей.
  141. Обратите внимание, что эта команда только перечисляет модули, загруженные
  142. в память менеджером служб. В частности, эта команда не подходит для получения
  143. исчерпывающего списка всех обратных зависимостей от определенного модуля,
  144. поскольку она не выводит список зависимостей,
  145. объявленных модулями, которые в данный момент не загружены.
  146. ";ES;fi;;
  147. 3) S=M3;SC; if [[ $cur == enter ]];then R;echo -e "
  148. Список блоков сокетов, находящихся в настоящее время в памяти, упорядоченных по
  149. адресу прослушивания. Если указан один или несколько ШАБЛОНОВ, отображаются
  150. только блоки сокетов, соответствующие одному из них.
  151. Производит вывод, аналогичный:
  152. ПРОСЛУШИВАНИЕ УСТРОЙСТВА АКТИВИРУЕТСЯ
  153. LISTEN UNIT ACTIVATES
  154. /dev/initctl systemd-initctl.socket systemd-initctl.service
  155. ...
  156. [::]:22 sshd.socket sshd.service
  157. kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
  158. В списке 5 розеток.
  159. Примечание: поскольку адреса могут содержать пробелы,
  160. этот вывод не подходит для программного использования.
  161. Смотрите также: --show-types, --all, and --state=
  162. ";ES;fi;;
  163. 4) S=M4;SC; if [[ $cur == enter ]];then R;echo -e "
  164. Список единиц таймера, находящихся в настоящее время в памяти, упорядоченных по
  165. времени, когда они истекают в следующий раз. Если указан один или несколько
  166. ШАБЛОНОВ, отображаются только единицы, соответствующие одному из них.
  167. Производит вывод, аналогичный:
  168. СЛЕДУЮЩИЙ СЛЕВА ПОСЛЕДНИЙ
  169. NEXT LEFT LAST
  170. n/a n/a Thu 2017-02-23 13:40:29 EST
  171. Sun 2017-02-26 18:55:42 EST 1min 14s left Thu 2017-02-23 13:54:44 EST
  172. Sun 2017-02-26 20:37:16 EST 1h 42min left Sun 2017-02-26 11:56:36 EST
  173. Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST
  174. ПРОЙДЕННЫЙ БЛОК АКТИВИРУЕТСЯ
  175. PASSED UNIT ACTIVATES
  176. 3 days ago ureadahead-stop.timer ureadahead-stop.service
  177. 3 days ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
  178. 6h ago apt-daily.timer apt-daily.service
  179. 6h ago snapd.refresh.timer snapd.refresh.service
  180. NEXT показывает время следующего запуска таймера.
  181. LEFT показывает, сколько времени осталось до следующего запуска таймера.
  182. LAST показывает время последнего запуска таймера.
  183. PASSED показывает, сколько времени прошло с момента последнего запуска таймера.
  184. UNIT показывает имя таймера
  185. ACTIVATES показывает имя службы, которую активирует таймер при запуске.
  186. Также смотрите --all и --stateu003d.
  187. ";ES;fi;;
  188. 5) S=M5;SC; if [[ $cur == enter ]];then R;echo -e "
  189. Проверьте, активны ли какие-либо из указанных устройств, т.е. работают:
  190. \e[32m systemctl is-active bluetooth\e[0m
  191. Возвращает код выхода 0, если хотя бы один из них активен, или ненулевой в про-
  192. тивном случае. Если не указан --quiet, это также выведет текущее состояние
  193. устройства на стандартный вывод.
  194. ";ES;fi;;
  195. 6) S=M6;SC; if [[ $cur == enter ]];then R;echo -e "
  196. Проверьте, не находится ли какое-либо из указанных устройств в состоянии «сбой»:
  197. \e[32m systemctl is-failed приложение.service\e[0m
  198. Возвращает код выхода 0, если хотя бы один из них не прошел,
  199. в противном случае ненулевой. Если не указан --quiet,
  200. это также выведет текущее состояние устройства на стандартный вывод.
  201. ";ES;fi;;
  202. 7) S=M7;SC;if [[ $cur == enter ]];then R;echo -e "
  203. \e[32m systemctl is-enabled bluetooth\e[0m
  204. ";ES;fi;;
  205. 8) S=M8;SC; if [[ $cur == enter ]];then R;echo -e "
  206. Показать свойства одного или нескольких объектов, рабочих мест или самого
  207. менеджера:\e[32m systemctl show bluetooth.service\e[0m
  208. Если аргумент не указан, будут показаны свойства менеджера.
  209. Если указано имя модуля, отображаются свойства модуля, если указан идентификатор
  210. задания, отображаются свойства задания. По умолчанию пустые свойства подавляются.
  211. Используйте --all, чтобы показать и их. Чтобы выбрать определенные свойства для
  212. отображения, используйте --propertyu003d. Эта команда предназначена для исполь-
  213. зования всякий раз, когда требуется компьютерно-анализируемый вывод. Используйте
  214. статус, если вы ищете форматированный удобочитаемый вывод. Многие свойства,
  215. отображаемые systemctl show, напрямую связаны с настройками конфигурации сис-
  216. темного и сервисного менеджера и его юнит-файлов.
  217. Обратите внимание, что свойства, отображаемые командой, обычно являются более
  218. низкоуровневыми, нормализованными версиями исходных параметров конфигурации и
  219. отображают состояние среды выполнения в дополнение к конфигурации.
  220. Например, свойства, отображаемые для единиц службы, включают текущий идентификатор
  221. основного процесса службы как «MainPID» (который является состоянием времени
  222. выполнения), а настройки времени всегда отображаются как свойства, оканчивающиеся
  223. на суффикс «...USec», даже если соответствующий параметры конфигурации
  224. заканчиваются на «...Sec», потому что микросекунды - это нормализованная единица
  225. времени, используемая внутренне системным и сервисным менеджером.
  226. Подробнее о многих из этих свойств см. в документации интерфейса D-Bus,
  227. поддерживающего эти свойства, см. org.freedesktop.systemd1
  228. ";ES;fi;;
  229. 9) S=M9;SC; if [[ $cur == enter ]];then R;echo -e "
  230. Показать резервные файлы одного или нескольких устройств:
  231. \e[32m systemctl cat bluetooth.service\e[0m
  232. Печатает «фрагменты» и «вставки» «fragment» «drop-ins» (исходные файлы) юнитов.
  233. Каждому файлу предшествует комментарий, который включает имя файла.
  234. Обратите внимание, что это показывает содержимое резервных файлов на диске,
  235. которое может не совпадать с системными менеджерами.
  236. ";ES;fi;;
  237. 10) S=M10;SC; if [[ $cur == enter ]];then R;echo -e "
  238. Показать справочные страницы для одного или нескольких устройств,
  239. если они доступны. Если задан PID,
  240. отображаются справочные страницы для модуля, которому принадлежит процесс.
  241. ";ES;fi;;
  242. 11) S=M11;SC; if [[ $cur == enter ]];then R;echo -e "
  243. Команда может использоваться для отображения текущего набора возможных значений.
  244. Это команда по умолчанию.
  245. ";ES;fi;;
  246. 12) S=M12;SC;if [[ $cur == enter ]];then R;echo -e "
  247. Запустить (активировать) один или несколько юнитов, указанных в командной строке.
  248. \e[32m
  249. sudo systemctl start имя_сервиса
  250. или
  251. sudo systemctl start bluetooth.service
  252. \e[0m
  253. Обратите внимание, что шаблоны единиц измерения расширяются до имен единиц,
  254. которые в данный момент находятся в памяти.
  255. Блоки, которые не активны и не находятся в состоянии сбоя,
  256. обычно не находятся в памяти и не будут соответствовать никакому шаблону.
  257. Кроме того, в случае созданных юнитов systemd часто не знает об имени экземпляра
  258. до тех пор, пока экземпляр не будет запущен. Следовательно, использование шаблонов
  259. глобуса с start имеет ограниченную полезность.
  260. Также не учитываются вторичные псевдонимы юнитов.
  261. Опция --all также может использоваться для работы с неактивными модулями,
  262. на которые ссылаются другие загруженные модули.
  263. Обратите внимание, что это не то же самое, что работать со «всеми» возможными
  264. единицами измерения, потому что, как описано в предыдущем абзаце, такой список
  265. плохо определен. Тем не менее, systemctl start --all GLOB может быть полезен,
  266. если все модули, которые должны соответствовать шаблону,
  267. загружаются некоторой целью, которая, как известно, загружена.
  268. ";ES;fi;;
  269. 13) S=M13;SC;if [[ $cur == enter ]];then R;echo -e "
  270. Остановить (деактивировать) один или несколько юнитов, указанных в командной
  271. строке:
  272. \e[32m
  273. sudo systemctl stop bluetooth
  274. или
  275. sudo systemctl stop bluetooth -f
  276. \e[0m
  277. Эта команда завершится ошибкой, если модуль не существует или его
  278. остановка запрещена (см. RefuseManualStopu003d в systemd.unit).
  279. Это не приведет к сбою, если какая-либо из команд, сконфигурированных для
  280. остановки устройства (ExecStopu003d и т. д.), завершится ошибкой,
  281. потому что менеджер все равно принудительно завершит работу устройства.
  282. ";ES;fi;;
  283. 14) S=M14;SC;if [[ $cur == enter ]];then R;echo -e "
  284. Мягкая перезагрузка:
  285. \e[32m systemctl reload bluetooth\e[0m
  286. Просит все устройства, перечисленные в командной строке, перезагрузить свою кон-
  287. фигурацию. Обратите внимание, что это перезагрузит конфигурацию службы, а не файл
  288. конфигурации модуля systemd. Если вы хотите, чтобы systemd перезагрузил файл кон-
  289. фигурации устройства, используйте команду daemon-reload. Другими словами: в при-
  290. мере с Apache это перезагрузит httpd.conf Apache на веб-сервере, а не файл модуля
  291. apache.service systemd. Эту команду не следует путать с командой daemon-reload.
  292. ";ES;fi;;
  293. 15) S=M15;SC;if [[ $cur == enter ]];then R;echo -e "
  294. Обратите внимание, что перезапуск модуля с помощью этой команды не обязательно
  295. приводит к сбросу всех ресурсов модуля перед его повторным запуском.
  296. \e[32m
  297. sudo systemctl restart NetworkManager
  298. или
  299. sudo systemctl restart bluetooth
  300. \e[0m
  301. Например, хранилище файловых дескрипторов для каждой службы
  302. (см. FileDescriptorStoreMaxu003d в systemd.service) остаются нетронутыми до тех
  303. пор, пока устройство имеет ожидающее задание, и очищается только тогда, когда
  304. устройство полностью остановлено и больше нет ожидающих заданий.
  305. Если предполагается, что хранилище файловых дескрипторов также очищается во время
  306. операции перезапуска, явный Должна быть выполнена команда systemctl stop,
  307. за которой следует запуск systemctl.
  308. ";ES;fi;;
  309. 16) S=M16;SC;if [[ $cur == enter ]];then R;echo -e "
  310. Остановите, а затем запустите один или несколько модулей, указанных в командной
  311. строке, если они работают. Это ничего не делает, если юниты не работают.
  312. ";ES;fi;;
  313. 17) S=M17;SC;if [[ $cur == enter ]];then R;echo -e "
  314. Перезагрузите один или несколько юнитов, если они это поддерживают.
  315. Если нет, остановитесь, а затем запустите их вместо этого.
  316. Если блоки еще не запущены, они будут запущены:
  317. \e[32m sudo systemctl reload-or-restart имя.service\e[0m
  318. ";ES;fi;;
  319. 18) S=M18;SC;if [[ $cur == enter ]];then R;echo -e "
  320. Перезагрузите один или несколько юнитов, если они это поддерживают.
  321. Если нет, остановитесь, а затем запустите их вместо этого.
  322. Это ничего не делает, если устройства не работают.
  323. ";ES;fi;;
  324. 19) S=M19;SC;if [[ $cur == enter ]];then R;echo -e "
  325. Запустите модуль, указанный в командной строке, его зависимости и остановите все:
  326. \e[32m sudo systemctl isolate multi-user.target\e[0m
  327. остальные, если только они не имеют IgnoreOnIsolateu003dyes (см. systemd.unit).
  328. Если указано имя модуля без расширения, предполагается расширение «.target».
  329. Эта команда опасна, так как она немедленно остановит процессы, которые не включе-
  330. ны в новой цели, возможно, включая графическую среду или терминал, который вы ис-
  331. пользуете в данный момент. Обратите внимание, что это разрешено только для уст-
  332. ройств, для которых включен параметр AllowIsolateu003d.
  333. Подробности смотрите в systemd.unit
  334. ";ES;fi;;
  335. 20) S=M20;SC;if [[ $cur == enter ]];then R;echo -e "
  336. Отправить сигнал одному или нескольким процессам устройства.
  337. Используйте --kill-whou003d, чтобы выбрать, какой процесс убить.
  338. Используйте --signalu003d для выбора сигнала для отправки.
  339. ";ES;fi;;
  340. 21) S=M21;SC;if [[ $cur == enter ]];then R;echo -e "
  341. Удалите конфигурацию, состояние, кеш, журналы или данные времени выполнения ука-
  342. занных модулей. Используйте --whatu003d, чтобы выбрать тип ресурса для удаления.
  343. Для сервисных модулей это может быть использовано для удаления каталогов,
  344. настроенных с помощью ConfigurationDirectoryu003d, StateDirectoryu003d,
  345. CacheDirectoryu003d, LogsDirectoryu003d и RuntimeDirectoryu003d,
  346. подробности см. в systemd.exec.
  347. Для таймеров это может быть использовано для очистки данных постоянной временной
  348. метки, если используется Persistentu003d и выбрано --whatu003dstate,
  349. см. systemd.timer. Эта команда применяется только к устройствам, которые
  350. используют любую из этих настроек. Если --whatu003d не указано, удаляются и кэш,
  351. и данные времени выполнения (поскольку эти два типа данных обычно избыточны
  352. и воспроизводятся при следующем вызове модуля).
  353. ";ES;fi;;
  354. 22) S=M22;SC;if [[ $cur == enter ]];then R;echo -e "
  355. Заморозить один или несколько юнитов, указанных в командной строке, с помощью
  356. заморозки cgroup. Замораживание устройства приведет к приостановке всех процессов,
  357. содержащихся в контрольной группе, соответствующей устройству.
  358. Приостановка означает, что процессы устройства не будут запланированы для запуска
  359. на ЦП до тех пор, пока они не будут разморожены.
  360. Обратите внимание, что эта команда поддерживается только в системах, использующих
  361. единую иерархию cgroup. Юнит автоматически размораживается непосредственно перед
  362. тем, как мы выполняем работу с ним, т.е. перед остановкой агрегата.
  363. ";ES;fi;;
  364. 23) S=M23;SC;if [[ $cur == enter ]];then R;echo -e "
  365. Разморозить (разморозить) один или несколько юнитов, указанных в командной строке.
  366. Это операция, обратная команде замораживания,
  367. и возобновляет выполнение процессов в контрольной группе объекта.
  368. ";ES;fi;;
  369. 24) S=M24;SC;if [[ $cur == enter ]];then R;echo -e "
  370. Задайте указанные свойства модуля во время выполнения, если это поддерживается.
  371. Это позволяет изменять свойства параметров конфигурации, такие как параметры
  372. управления ресурсами, во время выполнения. Не все свойства могут быть изменены во
  373. время выполнения, но многие параметры управления ресурсами (в основном, в
  374. systemd.resource-control) могут быть изменены. Изменения применяются немедленно и
  375. сохраняются на диске для будущих загрузок, за исключением случаев,
  376. когда --runtime передается, и в этом случае настройки применяются только до
  377. следующей перезагрузки.
  378. Синтаксис назначения свойств очень похож на синтаксис назначений в юнит-файлах.
  379. Пример: systemctl set-property foobar.service CPUWeightu003d200
  380. Если указанный юнит окажется неактивным, изменения будут сохранены только на диске
  381. как описано выше, поэтому они вступят в силу, когда юнит будет запущен. Обратите
  382. внимание, что эта команда позволяет изменять несколько свойств одновременно,
  383. что предпочтительнее, чем настраивать их по отдельности.
  384. Пример: systemctl set-property foobar.service CPUWeightu003d200 MemoryMaxu003d2G
  385. IPAccountingu003dyes
  386. Как и в случае с параметрами конфигурации файла модуля, назначение пустого
  387. параметра обычно сбрасывает свойство до его значений по умолчанию.
  388. Пример: systemctl set-property avahi-daemon.service IPAddressDenyu003d
  389. ";ES;fi;;
  390. 25) S=M25;SC;if [[ $cur == enter ]];then R;echo -e "
  391. Привязывает файл или каталог с хоста к указанному пространству имен монтирования
  392. устройства. Первый аргумент пути — это исходный файл или каталог на хосте,
  393. второй аргумент пути — конечный файл или каталог в пространстве имен монтирования
  394. устройства. Когда последний опущен, путь назначения в пространстве имен
  395. монтирования устройства совпадает с исходным путем на хосте. В сочетании с
  396. параметром --read-only создается монтирование только для готовой привязки.
  397. переключатель --mkdir,
  398. путь назначения сначала создается до применения монтирования
  399. ";ES;fi;;
  400. 26) S=M26;SC;if [[ $cur == enter ]];then R;echo -e "
  401. Подключает образ с хоста в указанное пространство имен монтирования устройства.
  402. Первый аргумент пути — это исходный образ на хосте,
  403. второй аргумент пути — это каталог назначения в пространстве имен монтирования
  404. устройства (т. е. внутри RootImageu003d/RootDirectoryu003d ).
  405. Следующий аргумент, если он есть, интерпретируется как разделенный двоеточиями
  406. кортеж имени раздела и разделенный запятыми список параметров монтирования для
  407. этого раздела. Формат такой же, как и у параметра службы MountImagesu003d.
  408. В сочетании с параметром --read-only создается готовое монтирование.
  409. В сочетании с параметром --mkdir
  410. путь назначения сначала создается до применения монтирования.
  411. Обратите внимание, что этот параметр в настоящее время поддерживается только для
  412. модулей, работающих в пространстве имен монтирования (т. е. с RootImageu003d,
  413. PrivateMountsu003d и т. д.). Обратите внимание, что упомянутое здесь пространство
  414. имен, в которое будет добавлено монтирование образа, — это пространство, в котором
  415. выполняется основной процесс службы. Обратите внимание, что упомянутое здесь
  416. пространство имен, в которое будет добавлено монтирование привязки, — это то
  417. пространство, в котором выполняется основной процесс службы.
  418. Другие процессы (выполняемые ExecReloadu003d, ExecStartPreu003d и т. д.)
  419. выполняются в разных пространствах имен.
  420. Example:
  421. systemctl mount-image foo.service /tmp/img.raw /var/lib/image root:ro,nosuid
  422. systemctl mount-image --mkdir bar.service /tmp/img.raw /var/lib/baz/img
  423. ";ES;fi;;
  424. 27) S=M27;SC;if [[ $cur == enter ]];then R;echo -e "
  425. Если аргумент LEVEL не указан,
  426. распечатайте текущий уровень журнала, как сообщает служба SERVICE.
  427. Если указан необязательный аргумент LEVEL,
  428. измените текущий уровень журнала службы на LEVEL. Уровень журнала должен быть
  429. типичным уровнем журнала системного журнала, т. е. значением в диапазоне 0...7
  430. или одной из строк emerg, alert, crit, err, warning, notice, info, debug
  431. подробности смотрите в syslog
  432. Служба должна иметь соответствующее свойство BusNameu003ddestination,
  433. а также реализовывать универсальный интерфейс org.freedesktop.LogControl1
  434. (systemctl будет использовать общий протокол D-Bus для доступа к интерфейсу
  435. org.freedesktop.LogControl1.LogLevel для назначения имени D-Bus.)
  436. ";ES;fi;;
  437. 28) S=M28;SC;if [[ $cur == enter ]];then R;echo -e "
  438. Если аргумент TARGET не указан, распечатайте текущую цель журнала,
  439. как сообщает служба SERVICE.
  440. Если указан необязательный аргумент TARGET,
  441. измените текущую цель журнала службы на TARGET.
  442. Цель журнала должна быть одной из строк:
  443. console (для вывода журнала в стандартный поток ошибок службы),
  444. kmsg (для вывода журнала в буфер журнала ядра),
  445. log (для вывода журнала в systemd-journald.service
  446. с использованием собственного протокола журнала),
  447. syslog (для вывода журнала в классический сокет системного журнала /dev/log),
  448. null (без вывода журнала вообще)
  449. auto (для автоматически определяемого выбора, обычно эквивалентного консоли,
  450. если служба вызывается в интерактивном режиме)
  451. и журнал или системный журнал в противном случае).
  452. Для большинства служб имеет смысл только небольшое подмножество целей журнала.
  453. В частности, большинство «обычных» служб должны реализовывать только консоль,
  454. журнал и ноль. Все остальное подходит только для низкоуровневых служб,
  455. которые активны в очень ранней загрузке, прежде чем будет установлено правильное
  456. ведение журнала.
  457. Служба должна иметь соответствующее свойство BusNameu003ddestination,
  458. а также реализовывать общий интерфейс org.freedesktop.LogControl1
  459. (systemctl будет использовать общий протокол D-Bus для доступа к
  460. org.freedesk интерфейс top.LogControl1.LogLevel для назначения имени D-Bus.)
  461. ";ES;fi;;
  462. 29) S=M29;SC;if [[ $cur == enter ]];then R;echo -e "
  463. Сбросить состояние «сбой» указанных модулей или, если имя модуля не передано,
  464. сбросить состояние всех модулей.
  465. Когда устройство каким-либо образом выходит из строя (например, процесс заверша-
  466. ется с ненулевым кодом ошибки, завершается ненормально, истекает время ожидания),
  467. он автоматически переходит в состояние «сбой», а его код выхода и состояние
  468. записываются для самоконтроля администратором до тех пор, пока служба
  469. останавливается/перезапускается или сбрасывается с помощью этой команды.
  470. В дополнение к сбросу состояния «сбой» юнита он также сбрасывает различные другие
  471. свойства юнита:
  472. счетчик ограничения начальной скорости всех типов юнитов сбрасывается на ноль,
  473. как и счетчик перезапуска сервисных юнитов. Таким образом, если начальный лимит
  474. юнита в соответствии с настройками StartLimitIntervalSecu003d/StartLimitBurstu003d
  475. превышен, а юнит отказывается запускаться снова, используйте эту команду,
  476. чтобы сделать его снова доступным для запуска.
  477. ";ES;fi;;
  478. 30) S=M30;SC; if [[ $cur == enter ]];then R;echo -e "
  479. Показать краткую информацию о состоянии выполнения одного или нескольких уст-
  480. ройств, а затем самые последние данные журнала из журнала.
  481. \e[32m systemctl status bluetooth\e[0m
  482. Если единицы измерения не указаны, показать состояние системы. В сочетании с
  483. --all также показывает состояние всех объектов (с учетом ограничений, указанных
  484. с помощью -t). Если передан PID, показать информацию о единице, к которой
  485. принадлежит процесс. Эта функция предназначена для создания удобочитаемого вывода.
  486. Если вы ищете вывод, пригодный для компьютерного анализа, используйте вместо него
  487. show. По умолчанию эта функция показывает только 10 строк вывода и эллипсизирует
  488. строки, чтобы они поместились в окне терминала. Это можно изменить с помощью
  489. --lines и --full, см. выше. Кроме того, journalctl --unitu003dNAME или journalctl
  490. --user-unitu003dNAME используют аналогичный фильтр для сообщений и могут быть
  491. более удобными. systemd неявно загружает модули по мере необходимости, поэтому
  492. просто запуск состояния будет пытаться загрузить файл. Таким образом, команда
  493. бесполезна для определения того, было ли что-то уже загружено или нет.
  494. Блоки также могут быть быстро выгружены после завершения операции,
  495. если нет необходимости хранить их в памяти после этого.
  496. Пример 1. Пример вывода из состояния systemctl:
  497. \$ systemctl status bluetooth
  498. ● bluetooth.service - Bluetooth service
  499. Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset:
  500. enabled)
  501. Active: active (running) since Wed 2017-01-04 13:54:04 EST; 1 weeks 0 days ago
  502. Docs: man:bluetoothd(8)
  503. Main PID: 930 (bluetoothd)
  504. Status: \"Running\"
  505. Tasks: 1
  506. Memory: 648.0K
  507. CPU: 435ms
  508. CGroup: /system.slice/bluetooth.service
  509. └─930 /usr/lib/bluetooth/bluetoothd
  510. Jan 12 10:46:45 example.com bluetoothd[8900]:
  511. Not enough free handles to register service
  512. недостаточно свободных дескрипторов для регистрации службы
  513. Jan 12 10:46:45 example.com bluetoothd[8900]:
  514. Current Time Service could not be registered
  515. служба текущего времени не может быть зарегистрирована
  516. Jan 12 10:46:45 example.com bluetoothd[8900]:
  517. gatt-time-server: Input/output error (5)
  518. gatt-time-server: ошибка ввода/вывода (5)
  519. Точка («●») использует цвет на поддерживаемых клеммах, чтобы с первого взгляда
  520. суммировать состояние устройства.
  521. Наряду с цветом его форма варьируется в зависимости от состояния:
  522. «inactive» или «maintenance» — белый круг («○»),
  523. «active» — зеленая точка («●»),
  524. «deactivating» — белая точка,
  525. «failed» или «error» — красный крестик ( «×»),
  526. «reloading» — зеленая стрелка по часовой стрелке («↻»).
  527. В строке «Loaded:» в выводе будет указано «[oaded»,
  528. если устройство было загружено в память.
  529. Другие возможные значения для «Loaded:» включают:
  530. «error», если возникла проблема с его загрузкой,
  531. «not-found», если для этого модуля не найдено ни одного файла модуля,
  532. «bad-setting», если не удалось установить важный параметр файла модуля.
  533. анализируется и «masked», если файл модуля был замаскирован.
  534. Наряду с указанием пути к файлу модуля в этой строке также отображается
  535. состояние включения. Включенные команды запускаются при загрузке.
  536. См. полную таблицу возможных состояний включения, включая определение
  537. «masked», в документации по команде is-enabled.
  538. Строка «Active:» показывает активное состояние.
  539. Обычно это значение «active» или «inactive».
  540. Активный может означать запущенный, связанный, подключенный и т. д.
  541. в зависимости от типа устройства.
  542. Устройство также может находиться в процессе изменения состояния,
  543. сообщая о состоянии «activating» или «deactivating».
  544. В специальное состояние «failed» входит, когда служба каким-либо образом вышла
  545. из строя, например, сбой, выход с кодом ошибки или превышение времени ожидания.
  546. Если вводится состояние сбоя, причина будет зарегистрирована
  547. для дальнейшего использования.
  548. ";ES;fi;;
  549. 31) S=M31;SC;if [[ $cur == enter ]];then R;exit 0;fi;;
  550. esac;POS;done