Changes
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/components/documentation/articlesrc-scripting_index/changes/?format=api&page=67
https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/changes/?format=api&page=68", "previous": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/changes/?format=api&page=66", "results": [ { "unit": "https://translate-dev.freebsd.org/api/units/1807527/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:25:19.904293Z", "action": 2, "target": "Что изменилось в этом примере?", "id": 878413, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878413/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807528/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:25:23.783026Z", "action": 2, "target": "➊ Переменная `rcvar` определяет имя переменной-переключателя ON/OFF.", "id": 878414, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878414/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807529/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:25:26.854679Z", "action": 2, "target": "➋ Теперь `load_rc_config` вызывается раньше в скрипте, до обращения к любым переменным man:rc.conf[5].", "id": 878415, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878415/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807530/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:25:45.411463Z", "action": 2, "target": "При изучении скриптов в [.filename]#rc.d# следует помнить, что man:sh[1] откладывает вычисление выражений в функции до её вызова. Поэтому не будет ошибкой вызвать `load_rc_config` непосредственно перед `run_rc_command` и при этом обращаться к переменным man:rc.conf[5] из функций методов, экспортируемых в `run_rc_command`. Это связано с тем, что функции методов вызываются `run_rc_command`, который выполняется _после_ `load_rc_config`.", "id": 878416, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878416/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807531/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:26:10.771216Z", "action": 2, "target": "➌ `run_rc_command` выдаст предупреждение, если переменная `rcvar` установлена, но указанная переменная-флаг не задана. Если ваш скрипт [.filename]#rc.d# предназначен для базовой системы, вы должны добавить значение по умолчанию для флага в [.filename]#/etc/defaults/rc.conf# и задокументировать его в man:rc.conf[5]. В противном случае ваш скрипт должен предоставить значение по умолчанию для флага. Канонический подход для последнего случая показан в примере.", "id": 878417, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878417/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807532/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:26:40.554152Z", "action": 2, "target": "Вы можете заставить man:rc.subr[8] действовать так, как если бы переключатель установлен в `ON`, независимо от его текущего значения, добавив перед аргументом скрипта префикс `one` или `force`, например `onestart` или `forcestop`. Однако учтите, что `force` имеет другие опасные эффекты, которые мы затронем ниже, тогда как `one` просто переопределяет переключатель ON/OFF. Например, предположим, что `dummy_enable` установлен в `OFF`. Следующая команда выполнит метод `start`, несмотря на настройку:", "id": 878418, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878418/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807534/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:26:54.915667Z", "action": 2, "target": "➍ Теперь сообщение, отображаемое при загрузке, больше не жестко закодировано в скрипте. Оно задается переменной `dummy_msg` в man:rc.conf[5]. Это простой пример того, как переменные man:rc.conf[5] могут управлять скриптом в [.filename]#rc.d#.", "id": 878419, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878419/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807535/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:27:03.507693Z", "action": 2, "target": "Имена всех переменных man:rc.conf[5], используемых исключительно нашим скриптом, _должны_ иметь один и тот же префикс: `${name}_`. Например: `dummy_mode`, `dummy_state_file` и так далее.", "id": 878420, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878420/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807536/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:27:14.754846Z", "action": 2, "target": "Хотя можно использовать более короткое имя внутри, например, просто `msg`, добавление уникального префикса `${name}_` ко всем глобальным именам, вводимым нашим скриптом, избавит нас от возможных конфликтов с пространством имен man:rc.subr[8].", "id": 878421, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878421/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807537/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:27:27.903216Z", "action": 2, "target": "Как правило, скрипты [.filename]#rc.d# базовой системы не должны предоставлять значения по умолчанию для своих переменных man:rc.conf[5], поскольку значения по умолчанию должны быть установлены в [.filename]#/etc/defaults/rc.conf#. С другой стороны, скрипты [.filename]#rc.d# для портов должны предоставлять значения по умолчанию, как показано в примере.", "id": 878422, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878422/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807538/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:27:37.736625Z", "action": 2, "target": "➎ Здесь мы используем `dummy_msg` для фактического управления нашим скриптом, т.е., для выдачи переменного сообщения. Использование shell-функции здесь избыточно, так как она выполняет только одну команду; равнозначной альтернативой является:", "id": 878423, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878423/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807540/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T10:27:41.868772Z", "action": 2, "target": "Запуск и остановка простого демона", "id": 878424, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878424/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807541/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:06:05.941350Z", "action": 2, "target": "Мы ранее говорили, что man:rc.subr[8] может предоставлять методы по умолчанию. Очевидно, что такие методы не могут быть слишком общими. Они подходят для стандартного случая запуска и остановки простого демона. Предположим, что нам нужно написать скрипт [.filename]#rc.d# для такого демона с именем `mumbled`. Вот он:", "id": 878425, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878425/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807545/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:14:21.216189Z", "action": 2, "target": "Приятно просто, не так ли? Давайте рассмотрим наш небольшой скрипт. Единственное новое, на что стоит обратить внимание, это следующее:", "id": 878426, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878426/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807546/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:14:33.380639Z", "action": 2, "target": "➊ Переменная `command` имеет значение для man:rc.subr[8]. Если она установлена, man:rc.subr[8] будет действовать по сценарию обслуживания обычного демона. В частности, будут предоставлены стандартные методы для таких аргументов: `start`, `stop`, `restart`, `poll` и `status`.", "id": 878427, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878427/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807547/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:15:34.771598Z", "action": 2, "target": "Демон будет запущен выполнением `$command` с флагами командной строки, указанными в `$mumbled_flags`. Таким образом, все входные данные для метода `start` по умолчанию доступны в переменных, установленных нашим скриптом. В отличие от `start`, другие методы могут требовать дополнительной информации о запущенном процессе. Например, `stop` должен знать PID процесса, чтобы завершить его. В данном случае, man:rc.subr[8] будет просматривать список всех процессов, ища процесс с именем, равным `procname`. Последний является ещё одной значимой переменной для man:rc.subr[8], и её значение по умолчанию совпадает со значением `command`. Другими словами, когда мы устанавливаем `command`, `procname` фактически устанавливается в то же значение. Это позволяет нашему скрипту завершить демон и проверить, запущен ли он вообще.", "id": 878428, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878428/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807548/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:16:11.933033Z", "action": 2, "target": "Некоторые программы на самом деле являются исполняемыми скриптами. Система запускает такие скрипты, запуская их интерпретатор и передавая ему имя скрипта в качестве аргумента командной строки. Это отражается в списке процессов, что может сбить с толку man:rc.subr[8]. Дополнительно следует установить `command_interpreter`, чтобы man:rc.subr[8] знал фактическое имя процесса, если `$command` является скриптом.", "id": 878429, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878429/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807549/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:17:37.286175Z", "action": 2, "target": "Для каждого скрипта [.filename]#rc.d# существует необязательная переменная man:rc.conf[5], которая имеет приоритет над `command`. Её имя формируется следующим образом: `${name}_program`, где `name` — это обязательная переменная, которую мы обсуждали crossref:rc-scripting[name-var, ранее]. Например, в данном случае это будет `mumbled_program`. Именно man:rc.subr[8] обеспечивает переопределение `command` с помощью `${name}_program`.", "id": 878430, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878430/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807550/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:18:39.261420Z", "action": 2, "target": "Конечно, man:sh[1] позволяет установить `${name}_program` из man:rc.conf[5] или самого скрипта, даже если `command` не задан. В этом случае специальные свойства `${name}_program` теряются, и она становится обычной переменной, которую ваш скрипт может использовать для своих целей. Однако использование `${name}_program` в одиночку не рекомендуется, так как совместное использование с `command` стало идиомой в [.filename]#rc.d# скриптах.", "id": 878431, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878431/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807551/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:19:20.547599Z", "action": 2, "target": "Для получения более подробной информации о стандартных методах обратитесь к man:rc.subr[8].", "id": 878432, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878432/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807552/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:20:28.188209Z", "action": 2, "target": "Запуск и остановка продвинутого демона", "id": 878433, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878433/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807553/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:22:34.407264Z", "action": 2, "target": "Добавим немного мяса к костям предыдущего скрипта и сделаем его более сложным и функциональным. Стандартные методы могут хорошо справляться с задачами, но иногда требуется их тонкая настройка. Теперь мы узнаем, как адаптировать стандартные методы под наши нужды.", "id": 878434, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878434/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807563/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:26:14.429955Z", "action": 2, "target": "➊ Дополнительные аргументы для `$command` могут быть переданы в `command_args`. Они будут добавлены в командную строку после `$mumbled_flags`. Поскольку итоговая командная строка передаётся в `eval` для фактического выполнения, перенаправления ввода и вывода могут быть указаны в `command_args`.", "id": 878435, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878435/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807564/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:27:45.559163Z", "action": 2, "target": "Никогда не включайте параметры с дефисами, такие как `-X` или `--foo`, в `command_args`. Содержимое `command_args` будет добавлено в конец итоговой командной строки, поэтому, скорее всего, окажется после аргументов, указанных в `${name}_flags`; однако большинство команд не распознают параметры с дефисами после обычных аргументов. Лучший способ передать дополнительные параметры в `$command` — добавить их в начало `${name}_flags`. Другой способ — изменить `rc_flags` crossref:rc-scripting[rc-flags, как показано далее].", "id": 878436, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878436/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807565/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:28:10.206055Z", "action": 2, "target": "➋ Вежливый демон должен создавать _pidfile_, чтобы его процесс можно было найти проще и надежнее. Переменная `pidfile`, если она установлена, указывает man:rc.subr[8], где можно найти pidfile для использования его стандартными методами.", "id": 878437, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878437/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807566/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T15:28:18.327479Z", "action": 2, "target": "На самом деле, man:rc.subr[8] также использует pidfile для проверки, запущен ли демон, перед его запуском. Эту проверку можно пропустить, используя аргумент `faststart`.", "id": 878438, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878438/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807567/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:12:40.670124Z", "action": 2, "target": "➌ Если демон не может работать без определённых файлов, просто укажите их в `required_files`, и man:rc.subr[8] проверит их наличие перед запуском демона. Также существуют `required_dirs` и `required_vars` для каталогов и переменных окружения соответственно. Все они подробно описаны в man:rc.subr[8].", "id": 878439, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878439/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807568/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:13:02.569559Z", "action": 2, "target": "Метод по умолчанию из man:rc.subr[8] можно принудительно заставить пропустить проверки предварительных условий, используя аргумент `forcestart` в скрипте.", "id": 878440, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878440/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807569/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:13:48.626816Z", "action": 2, "target": "➍ Мы можем настроить сигналы, отправляемые демону, если они отличаются от общеизвестных. В частности, `sig_reload` указывает сигнал, который заставляет демона перезагрузить свою конфигурацию; по умолчанию это SIGHUP. Другой сигнал отправляется для остановки процесса демона; по умолчанию используется SIGTERM, но это можно изменить, установив `sig_stop` соответствующим образом.", "id": 878441, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878441/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807570/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:14:12.405195Z", "action": 2, "target": "Имена сигналов должны указываться для man:rc.subr[8] без префикса `SIG`, как показано в примере. Версия man:kill[1] в FreeBSD может распознавать префикс `SIG`, но версии из других типов ОС могут не поддерживать его.", "id": 878442, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878442/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807571/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:16:54.734371Z", "action": 2, "target": "➎➏ Выполнение дополнительных задач до или после стандартных методов — это просто. Для каждого аргумента команды, поддерживаемого нашим скриптом, мы можем определить `argument_precmd` и `argument_postcmd`. Эти команды man:sh[1] вызываются до и после соответствующего метода, что очевидно из их названий.", "id": 878443, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878443/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807572/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:21:48.485032Z", "action": 2, "target": "Переопределение стандартного метода с помощью пользовательского `argument_cmd` всё равно не мешает нам использовать `argument_precmd` или `argument_postcmd`, если это необходимо. В частности, первый полезен для проверки пользовательских сложных условий, которые должны быть выполнены перед выполнением самой команды. Использование `argument_precmd` вместе с `argument_cmd` позволяет логически разделить проверки от действия.", "id": 878444, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878444/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807573/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:21:59.935740Z", "action": 2, "target": "Не забывайте, что вы можете вставлять любые допустимые выражения из man:sh[1] в определяемые вами методы, а также команды pre- и post-. Просто вызывать функцию, которая выполняет основную работу, — это хороший стиль в большинстве случаев, но никогда не позволяйте стилю ограничивать ваше понимание того, что происходит за кулисами.", "id": 878445, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878445/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807574/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:22:34.195587Z", "action": 2, "target": "➐ Если мы хотим реализовать пользовательские аргументы, которые также можно рассматривать как _команды_ для нашего скрипта, необходимо перечислить их в `extra_commands` и предоставить методы для их обработки.", "id": 878446, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878446/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807575/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:24:52.520099Z", "action": 2, "target": "Команда `reload` является особенной. С одной стороны, у неё есть предустановленный метод в man:rc.subr[8]. С другой стороны, `reload` не предлагается по умолчанию. Причина в том, что не все демоны используют одинаковый механизм перезагрузки, а у некоторых вообще нет ничего для перезагрузки. Поэтому нам нужно явно запросить предоставление встроенной функциональности. Это можно сделать с помощью `extra_commands`.", "id": 878447, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878447/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807576/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:27:00.913758Z", "action": 2, "target": "Что мы получаем от метода по умолчанию для `reload`? Довольно часто демоны перезагружают свою конфигурацию при получении сигнала — обычно, SIGHUP. Поэтому man:rc.subr[8] пытается перезагрузить демона, отправляя ему сигнал. Сигнал предустановлен на SIGHUP, но может быть изменён через `sig_reload` при необходимости.", "id": 878448, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878448/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807577/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:27:37.024983Z", "action": 2, "target": "➑⓮ Наш скрипт поддерживает две нестандартные команды: `plugh` и `xyzzy`. Мы видели их в списке `extra_commands`, и теперь пришло время реализовать методы для них. Метод для `xyzzy` просто встроен в код, а для `plugh` он реализован как функция `mumbled_plugh`.", "id": 878449, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878449/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807578/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:27:46.222607Z", "action": 2, "target": "Нестандартные команды не вызываются во время запуска или завершения работы. Обычно они предназначены для удобства системного администратора. Они также могут использоваться другими подсистемами, например, man:devd[8], если указаны в man:devd.conf[5].", "id": 878450, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878450/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807579/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:28:43.504794Z", "action": 2, "target": "Полный список доступных команд можно найти в строке использования, выводимой man:rc.subr[8], когда скрипт вызывается без аргументов. Например, вот строка использования из изучаемого скрипта:", "id": 878451, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878451/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807581/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:30:01.494510Z", "action": 2, "target": "⓭ Скрипт может вызывать свои собственные стандартные или нестандартные команды, если это необходимо. Это может выглядеть похоже на вызов функций, но мы знаем, что команды и функции оболочки не всегда одно и то же. Например, `xyzzy` не реализован как функция в данном случае. Кроме того, могут существовать пред-команда и пост-команда, которые должны вызываться в определённом порядке. Поэтому правильный способ для скрипта выполнить свою собственную команду — с помощью man:rc.subr[8], как показано в примере.", "id": 878452, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878452/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807582/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:32:07.712005Z", "action": 2, "target": "➒ Полезная функция `checkyesno` предоставляется man:rc.subr[8]. Она принимает имя переменной в качестве аргумента и возвращает нулевой код выхода только если переменная установлена в `YES`, `TRUE`, `ON` или `1`, без учёта регистра; в противном случае возвращается ненулевой код выхода. В последнем случае функция проверяет, установлена ли переменная в `NO`, `FALSE`, `OFF` или `0`, также без учёта регистра; если переменная содержит что-то иное (т.е. мусор), функция выводит предупреждение.", "id": 878453, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878453/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807583/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:33:31.890325Z", "action": 2, "target": "Имейте в виду, что для man:sh[1] нулевой код возврата означает истину, а ненулевой код возврата означает ложь.", "id": 878454, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878454/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807584/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:33:41.345987Z", "action": 2, "target": "Функция `checkyesno` принимает __имя переменной__. Не передавайте ей _значение_ переменной; это не будет работать, как ожидается.", "id": 878455, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878455/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807585/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:33:44.727803Z", "action": 2, "target": "Ниже приведено правильное использование `checkyesno`:", "id": 878456, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878456/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807587/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:35:25.490921Z", "action": 2, "target": "Напротив, вызов `checkyesno`, как показано ниже, не сработает — по крайней мере, не так, как ожидается:", "id": 878457, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878457/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807589/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:35:33.882144Z", "action": 2, "target": "➓ [[rc-flags]] Мы можем влиять на флаги, передаваемые команде `$command`, изменяя `rc_flags` в `$start_precmd`.", "id": 878458, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878458/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807590/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:35:45.644781Z", "action": 2, "target": "⓫ В некоторых случаях может потребоваться вывести важное сообщение, которое также должно попасть в `syslog`. Это можно легко сделать с помощью следующих функций man:rc.subr[8]: `debug`, `info`, `warn` и `err`. Последняя функция завершает выполнение скрипта с указанным кодом.", "id": 878459, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878459/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807591/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:36:50.810029Z", "action": 2, "target": "⓬ Коды выхода из методов и их предварительных команд не просто игнорируются по умолчанию. Если `argument_precmd` возвращает ненулевой код выхода, основной метод не будет выполнен. В свою очередь, `argument_postcmd` не будет вызван, если основной метод возвращает ненулевой код выхода.", "id": 878460, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878460/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807592/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:36:56.900794Z", "action": 2, "target": "Однако man:rc.subr[8] можно указать из командной строки игнорировать эти коды завершения и выполнять все команды в любом случае, добавив префикс `force` к аргументу, например `forcestart`.", "id": 878461, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878461/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807593/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/ru/?format=api", "user": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "author": "https://translate-dev.freebsd.org/api/users/v.popolitov/?format=api", "timestamp": "2025-08-10T19:37:02.640347Z", "action": 2, "target": "Подключение скрипта к инфраструктуре rc.d", "id": 878462, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/878462/?format=api" } ] }{ "count": 3424, "next": "