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=68
https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/changes/?format=api&page=69", "previous": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/changes/?format=api&page=67", "results": [ { "unit": "https://translate-dev.freebsd.org/api/units/1807594/?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:54.140006Z", "action": 2, "target": "После написания скрипта его необходимо интегрировать в [.filename]#rc.d#. Ключевой шаг — установка скрипта в [.filename]#/etc/rc.d# (для базовой системы) или [.filename]#/usr/local/etc/rc.d# (для портов). И [.filename]#bsd.prog.mk#, и [.filename]#bsd.port.mk# предоставляют удобные механизмы для этого, и обычно вам не нужно беспокоиться о правильных правах доступа и режиме. Системные скрипты должны устанавливаться из [.filename]#src/libexec/rc/rc.d# через [.filename]#Makefile#, находящийся там. Скрипты портов можно установить с помощью `USE_RC_SUBR`, как описано extref:{porters-handbook}[в Руководстве портера, rc-скрипты].", "id": 878463, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878463/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807594/?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:40:20.128394Z", "action": 2, "target": "После написания скрипта его необходимо интегрировать в [.filename]#rc.d#. Ключевой шаг — установка скрипта в [.filename]#/etc/rc.d# (для базовой системы) или [.filename]#/usr/local/etc/rc.d# (для портов). И [.filename]#bsd.prog.mk#, и [.filename]#bsd.port.mk# предоставляют удобные механизмы для этого, и обычно вам не нужно беспокоиться о правильных правах доступа и режиме. Системные скрипты должны устанавливаться из [.filename]#src/libexec/rc/rc.d# через [.filename]#Makefile#, находящийся там. Скрипты портов можно установить с помощью `USE_RC_SUBR`, как описано extref:{porters-handbook}special/[в Руководстве портера, rc-скрипты].", "id": 878464, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878464/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807594/?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:42:21.815112Z", "action": 2, "target": "После написания скрипта его необходимо интегрировать в [.filename]#rc.d#. Ключевой шаг — установка скрипта в [.filename]#/etc/rc.d# (для базовой системы) или [.filename]#/usr/local/etc/rc.d# (для портов). И [.filename]#bsd.prog.mk#, и [.filename]#bsd.port.mk# предоставляют удобные механизмы для этого, и обычно вам не нужно беспокоиться о правильных правах доступа и режиме. Системные скрипты должны устанавливаться из [.filename]#src/libexec/rc/rc.d# через [.filename]#Makefile#, находящийся там. Скрипты портов можно установить с помощью `USE_RC_SUBR`, как описано extref:{porters-handbook}special/[в Руководстве FreeBSD по созданию портов, rc-скрипты].", "id": 878465, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878465/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807595/?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:43:07.797246Z", "action": 2, "target": "Однако следует заранее продумать место нашего скрипта в последовательности запуска системы. Скорее всего, обслуживаемый нашим скриптом сервис зависит от других сервисов. Например, сетевой демон не может работать без поднятых сетевых интерфейсов и маршрутизации. Даже если сервис, казалось бы, ничего не требует, он вряд ли сможет запуститься до проверки и монтирования основных файловых систем.", "id": 878466, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878466/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807596/?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:43:21.145526Z", "action": 2, "target": "Мы уже упоминали man:rcorder[8]. Теперь пришло время рассмотреть его подробнее. В двух словах, man:rcorder[8] принимает набор файлов, анализирует их содержимое и выводит на `stdout` список этих файлов, упорядоченный по зависимостям. Главная идея заключается в том, чтобы хранить информацию о зависимостях _внутри_ файлов, чтобы каждый файл мог описывать только себя. Файл может содержать следующую информацию:", "id": 878467, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878467/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807597/?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:43:52.832035Z", "action": 2, "target": "имена \"условий\" (что для нас означает сервисы), которые он __предоставляет__;", "id": 878468, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878468/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807598/?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:45:22.419040Z", "action": 2, "target": "имена \"условий\", которые он __требует__;", "id": 878469, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878469/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807599/?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:45:52.741150Z", "action": 2, "target": "имена \"условий\", перед которыми должен выполняться этот файл;", "id": 878470, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878470/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807600/?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:46:02.563542Z", "action": 2, "target": "дополнительные _ключевые слова_, которые могут использоваться для выбора подмножества из всего набора файлов (man:rcorder[8] может быть настроен с помощью опций для включения или исключения файлов, содержащих указанные ключевые слова.)", "id": 878471, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878471/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807601/?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:46:15.645065Z", "action": 2, "target": "Неудивительно, что man:rcorder[8] может обрабатывать только текстовые файлы с синтаксисом, близким к man:sh[1]. То есть специальные строки, понимаемые man:rcorder[8], выглядят как комментарии в man:sh[1]. Синтаксис таких специальных строк довольно жёсткий, чтобы упростить их обработку. Подробности см. в man:rcorder[8].", "id": 878472, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878472/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807602/?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:46:38.366613Z", "action": 2, "target": "Помимо использования специальных строк man:rcorder[8], скрипт может настаивать на своей зависимости от другой службы, просто принудительно запуская её. Это может быть необходимо, когда другая служба является опциональной и не запускается самостоятельно, потому что системный администратор ошибочно отключил её в man:rc.conf[5].", "id": 878473, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878473/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807603/?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:46:43.402973Z", "action": 2, "target": "С учетом этих общих знаний рассмотрим простой скрипт демона, дополненный зависимостями:", "id": 878474, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878474/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807607/?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:46:47.148918Z", "action": 2, "target": "Как и ранее, следует детальный анализ:", "id": 878475, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878475/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807608/?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:48:38.008224Z", "action": 2, "target": "➊ Эта строка объявляет названия \"условий\", которые предоставляет наш скрипт. Теперь другие скрипты могут указывать зависимость от нашего скрипта по этим именам.", "id": 878476, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878476/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807609/?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:48:52.067730Z", "action": 2, "target": "Обычно скрипт указывает одно предоставленное условие. Однако ничто не мешает нам перечислить несколько условий, например, по причинам совместимости.", "id": 878477, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878477/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807610/?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:48:59.122172Z", "action": 2, "target": "В любом случае, название основного или единственного условия `PROVIDE:` должно совпадать с `${name}`.", "id": 878478, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878478/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807611/?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:54:55.413827Z", "action": 2, "target": "➋➌ Таким образом, наш скрипт указывает, от каких \"условий\", предоставляемых другими скриптами, он зависит. Согласно строкам, наш скрипт просит man:rcorder[8] разместить его после скрипта(ов), предоставляющих [.filename]#DAEMON# и [.filename]#cleanvar#, но перед тем, который предоставляет [.filename]#LOGIN#.", "id": 878479, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878479/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807612/?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:55:24.835959Z", "action": 2, "target": "Строку `BEFORE:` не следует использовать для обхода неполного списка зависимостей в другом скрипте. Правильный случай для использования `BEFORE:` — когда другой скрипт не зависит от нашего, но наш скрипт может выполнить свою задачу лучше, если запустится до другого. Типичный пример из реальной жизни — сетевые интерфейсы и межсетевой экран: хотя интерфейсы не зависят от межсетевого экрана при выполнении своей работы, безопасность системы выиграет, если межсетевой экран будет готов до начала сетевого трафика.", "id": 878480, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878480/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807613/?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:55:42.946212Z", "action": 2, "target": "Помимо условий, соответствующих отдельным службам, существуют метаусловия и их \"заглушки\" скриптов, используемые для обеспечения выполнения определённых групп операций в заданном порядке. Они обозначаются именами в [.filename]#ВЕРХНЕМ РЕГИСТРЕ#. Их список и назначение можно найти в man:rc[8].", "id": 878481, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878481/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807614/?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:56:10.250066Z", "action": 2, "target": "Имейте в виду, что указание имени службы в строке `REQUIRE:` не гарантирует, что служба действительно будет запущена к моменту старта нашего скрипта. Требуемая служба может не запуститься или быть отключена в man:rc.conf[5]. Очевидно, man:rcorder[8] не может отслеживать такие детали, и man:rc[8] тоже этого не делает. Следовательно, приложение, запускаемое нашим скриптом, должно быть способно обрабатывать ситуации, когда требуемые службы недоступны. В некоторых случаях мы можем помочь ему, как описано в crossref:rc-scripting[forcedep, ниже]", "id": 878482, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878482/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807615/?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-10T20:04:08.843810Z", "action": 2, "target": "[[keywords]]➍ Как мы помним из текста выше, ключевые слова man:rcorder[8] могут использоваться для выбора или исключения некоторых скриптов. А именно, любой потребитель man:rcorder[8] может указать с помощью опций `-k` и `-s`, какие ключевые слова находятся в \"списке сохранения\" и \"списке пропуска\" соответственно. Из всех файлов, подлежащих сортировке по зависимостям, man:rcorder[8] выберет только те, которые имеют ключевое слово из списка сохранения (если он не пуст) и не имеют ключевого слова из списка пропуска.", "id": 878483, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878483/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807616/?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-10T20:04:12.989700Z", "action": 2, "target": "В FreeBSD, man:rcorder[8] используется [.filename]#/etc/rc# и [.filename]#/etc/rc.shutdown#. Эти два скрипта определяют стандартный список ключевых слов [.filename]#rc.d# FreeBSD и их значения следующим образом:", "id": 878484, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878484/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807618/?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-10T20:04:25.488888Z", "action": 2, "target": "Сервис не предназначен для окружения man:jail[8]. Процедуры автоматического запуска и остановки будут игнорировать скрипт, если он находится внутри клетки.", "id": 878485, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878485/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807620/?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-10T20:06:53.985453Z", "action": 2, "target": "Служба должна запускаться вручную или не запускаться вовсе. Процедура автоматического запуска проигнорирует скрипт. В сочетании с ключевым словом [.filename]#shutdown# это может использоваться для написания скриптов, выполняющих действия только при выключении системы.", "id": 878486, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878486/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807622/?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-10T20:07:01.170404Z", "action": 2, "target": "Этот ключевой параметр должен быть указан __явно__, если службу необходимо остановить перед завершением работы системы.", "id": 878487, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878487/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807623/?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-10T20:09:23.959006Z", "action": 2, "target": "Когда система собирается завершить работу, выполняется [.filename]#/etc/rc.shutdown#. Предполагается, что большинству скриптов [.filename]#rc.d# в этот момент нечего делать. Поэтому [.filename]#/etc/rc.shutdown# выборочно запускает скрипты [.filename]#rc.d# с ключевым словом [.filename]#shutdown#, фактически игнорируя остальные скрипты. Для ещё более быстрого завершения работы [.filename]#/etc/rc.shutdown# передаёт команду [.filename]#faststop# запускаемым скриптам, чтобы они пропускали предварительные проверки, например, проверку pid-файла. Поскольку зависимые службы должны быть остановлены до своих зависимостей, [.filename]#/etc/rc.shutdown# запускает скрипты в обратном порядке зависимостей. Если вы пишете настоящий скрипт [.filename]#rc.d#, стоит подумать, актуален ли он во время завершения работы системы. Например, если ваш скрипт выполняет свою работу только в ответ на команду [.filename]#start#, то включать это ключевое слово не нужно. Однако если ваш скрипт управляет службой, вероятно, стоит остановить её до того, как система перейдёт к финальной стадии завершения работы, описанной в man:halt[8]. В частности, службу следует останавливать явно, если для её корректного завершения требуется значительное время или специальные действия. Типичный пример такой службы — система управления базами данных.", "id": 878488, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878488/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807624/?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-10T20:09:32.948541Z", "action": 2, "target": "[[forcedep]]➎ Прежде всего, `force_depend` следует использовать с большой осторожностью. Обычно лучше пересмотреть иерархию конфигурационных переменных для ваших [.filename]#rc.d# скриптов, если они взаимозависимы.", "id": 878489, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878489/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807625/?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-10T20:13:20.791948Z", "action": 2, "target": "Если вам всё ещё не обойтись без `force_depend`, в примере показано, как вызвать его условно. В примере наш демон `mumbled` требует, чтобы другой демон, `frotz`, был запущен заранее. Однако `frotz` также является опциональным, и man:rcorder[8] ничего не знает о таких деталях. К счастью, наш скрипт имеет доступ ко всем переменным man:rc.conf[5]. Если `frotz_enable` имеет значение true, мы надеемся на лучшее и полагаемся на [.filename]#rc.d#, что `frotz` был запущен. В противном случае мы принудительно проверяем статус `frotz`. Наконец, мы принудительно устанавливаем зависимость от `frotz`, если обнаруживаем, что он не запущен. `force_depend` выдаст предупреждение, так как его следует вызывать только в случае обнаружения неправильной конфигурации.", "id": 878490, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878490/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807626/?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-10T20:13:30.523542Z", "action": 2, "target": "Придание большей гибкости скрипту rc.d", "id": 878491, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878491/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807627/?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-10T20:15:32.127866Z", "action": 2, "target": "При вызове во время запуска или завершения работы скрипт [.filename]#rc.d# должен воздействовать на всю подсистему, за которую он отвечает. Например, [.filename]#/etc/rc.d/netif# должен запускать или останавливать все сетевые интерфейсы, описанные в man:rc.conf[5]. Любая из этих задач может быть однозначно указана единственным аргументом команды, таким как `start` или `stop`. Между запуском и завершением работы скрипты [.filename]#rc.d# помогают администратору управлять работающей системой, и именно тогда возникает потребность в большей гибкости и точности. Например, администратор может добавить настройки нового сетевого интерфейса в man:rc.conf[5], а затем запустить его, не затрагивая работу существующих интерфейсов. В следующий раз администратору может потребоваться остановить отдельный сетевой интерфейс. В духе командной строки, соответствующий скрипт [.filename]#rc.d# требует дополнительного аргумента — имени интерфейса.", "id": 878492, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878492/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807628/?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-10T20:16:32.948338Z", "action": 2, "target": "К счастью, man:rc.subr[8] позволяет передавать любое количество аргументов (в пределах системных ограничений) методам скрипта. Благодаря этому изменения в самом скрипте могут быть минимальными.", "id": 878493, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878493/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807629/?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-10T20:16:51.562699Z", "action": 2, "target": "Как man:rc.subr[8] может получить доступ к дополнительным аргументам командной строки. Должен ли он просто захватывать их напрямую? Ни в коем случае. Во-первых, функция man:sh[1] не имеет доступа к позиционным параметрам своего вызывающего объекта, но man:rc.subr[8] — это просто набор таких функций. Во-вторых, хороший стиль [.filename]#rc.d# предписывает, что именно главный скрипт должен решать, какие аргументы передавать его методам.", "id": 878494, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878494/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807630/?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-10T20:17:08.365782Z", "action": 2, "target": "Итак, подход, принятый в man:rc.subr[8], следующий: `run_rc_command` передаёт все свои аргументы, кроме первого, в соответствующий метод в неизменном виде. Первый, опущенный аргумент — это имя самого метода: `start`, `stop` и т.д. Он будет удалён с помощью `shift` в `run_rc_command`, так что то, что было `$2` в оригинальной командной строке, будет представлено как `$1` в методе, и так далее.", "id": 878495, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878495/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807631/?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-10T20:17:14.646043Z", "action": 2, "target": "Чтобы проиллюстрировать эту возможность, давайте изменим примитивный скрипт-заглушку так, чтобы его сообщения зависели от дополнительных переданных аргументов. Вот как это выглядит:", "id": 878496, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878496/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807636/?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-10T20:17:18.142556Z", "action": 2, "target": "Какие основные изменения мы можем заметить в скрипте?", "id": 878497, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878497/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807637/?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-10T20:19:13.615696Z", "action": 2, "target": "➊ Все аргументы, которые вы вводите после `start`, могут стать позиционными параметрами для соответствующего метода. Мы можем использовать их любым способом в соответствии с нашей задачей, навыками и предпочтениями. В текущем примере мы просто передаем все их в man:echo[1] как одну строку в следующей строке — обратите внимание на `$*` в двойных кавычках. Вот как теперь можно вызывать этот скрипт:", "id": 878498, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878498/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807640/?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-10T20:19:43.598165Z", "action": 2, "target": "➋ То же самое относится к любому методу, который предоставляет наш скрипт, не только к стандартному. Мы добавили пользовательский метод с именем `kiss`, и он может использовать дополнительные аргументы не меньше, чем `start`. Например:", "id": 878499, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878499/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807643/?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-10T20:20:01.774049Z", "action": 2, "target": "➌ Если мы хотим просто передать все дополнительные аргументы любому методу, мы можем просто заменить `\"$@\"` на `\"$1\"` в последней строке нашего скрипта, где мы вызываем `run_rc_command`.", "id": 878500, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878500/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807644/?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-10T20:20:31.612263Z", "action": 2, "target": "Программист man:sh[1] должен понимать тонкую разницу между `$*` и `$@` как способами обозначения всех позиционных параметров. Для детального обсуждения обратитесь к хорошему руководству по написанию скриптов на man:sh[1]. _Не используйте_ эти выражения, пока полностью не поймёте их, так как их неправильное применение приведёт к созданию ненадёжных и небезопасных скриптов.", "id": 878501, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878501/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807645/?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-10T20:20:50.774160Z", "action": 2, "target": "В настоящее время в `run_rc_command` может присутствовать ошибка, которая мешает ему сохранять исходные границы между аргументами. То есть аргументы с встроенными пробелами могут обрабатываться некорректно. Ошибка возникает из-за неправильного использования `$*`.", "id": 878502, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878502/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807646/?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-10T20:20:54.011663Z", "action": 2, "target": "Подготовка скрипта для сервисных клеток", "id": 878503, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878503/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807647/?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-10T20:22:21.662091Z", "action": 2, "target": "Скрипты, запускающие долго работающую службу, подходят для клеток служб и должны поставляться с соответствующей конфигурацией клетки службы.", "id": 878504, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878504/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807647/?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-10T20:24:03.609091Z", "action": 2, "target": "Скрипты, запускающие долго работающую службу, подходят для служебных клеток и должны поставляться с соответствующей конфигурацией сервисной клетки.", "id": 878505, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878505/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807648/?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-10T20:24:36.935646Z", "action": 2, "target": "Некоторые примеры скриптов, которые не подходят для запуска в сервисной клетке:", "id": 878506, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878506/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807649/?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-10T20:25:15.511960Z", "action": 2, "target": "любой скрипт, который в команде start только изменяет настройки времени выполнения для программ или ядра,", "id": 878507, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878507/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807650/?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-10T20:25:22.561615Z", "action": 2, "target": "или пытается что-то смонтировать,", "id": 878508, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878508/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807651/?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-10T20:25:30.046034Z", "action": 2, "target": "или находит и удаляет файлы", "id": 878509, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878509/?format=api" }, { "unit": null, "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": null, "author": null, "timestamp": "2025-08-11T04:45:00.862953Z", "action": 17, "target": "", "id": 878673, "action_name": "提交了更改", "url": "https://translate-dev.freebsd.org/api/changes/878673/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807652/?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-11T07:37:07.327325Z", "action": 2, "target": "Необходимо предотврарить использование внутри сервисных клеток скриптов, не предназначенных для запуска в сервисной клетке.", "id": 878677, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878677/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/1807652/?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-11T07:37:21.069161Z", "action": 2, "target": "Необходимо предотвратить использование внутри сервисных клеток скриптов, не предназначенных для запуска в сервисной клетке.", "id": 878678, "action_name": "修改了译文", "url": "https://translate-dev.freebsd.org/api/changes/878678/?format=api" } ] }{ "count": 3424, "next": "