Serj Kalichev 1 year ago
parent
commit
cc430ac1ff
1 changed files with 50 additions and 0 deletions
  1. 50 0
      docs/klish3.ru.md

+ 50 - 0
docs/klish3.ru.md

@@ -591,12 +591,62 @@ SEQ сам может быть элементом контейнера SWITCH.
 
 #### Атрибут `interactive`
 
+Атрибут определяет является ли действие интерактивным. Например запуск текстового
+редактора является интерактивным, т.к. при работе в редакторе,
+действия пользователя влияют на результат и должны поступать от программы клиента
+к серверу. Также и изменения со стороны редактора должны немедленно отображаться
+у оператора.
+
+Возможные значения атрибута - `true` и `false`. По умолчанию `false`, т.е.
+действие не является интерактивным.
+
+Если действие объявлено интерактивным, то при его выполнении создается
+псевдо-терминал для обмена с пользователем. Не рекомендуется выставлять флаг
+интерактивности для не-интерактивных действий.
+
 
 #### Атрибут `parmanent`
 
+Система klish может быть запущена в режиме "dry-run", когда все действия не
+будут в реальности выполняться, а их код возврата всегда будет иметь значение
+"успех". Такой режим может использоваться для тестирования, для проверки
+корректности входящих данных и т.д.
+
+Однако некоторые символы должны исполняться всегда, независимо от режима.
+Примером такого символа может выступать функция навигации. Т.е. менять
+текущий путь сессии нужно всегда, в независимости от режима работы.
+
+Флаг `permanent` может менять поведение действия в режиме "dry-run".
+Возможные значения атрибута - `true` и `false`. По умолчанию `false`, т.е.
+действие не является "постоянным" и будет отключено в режиме "dry-run".
+
+Символы, при объявлении их в плугине, уже имеют признак постоянства. Символ
+может быть принудительно объявлен постоянным, принудительно объявлен
+непостоянным, либо плугин может отдать решение о постоянстве на откуп
+пользователю. Если флаг постоянства объявлен принудительно в плугине, то
+настройка атрибута `permanent` не будет влиять ни на что. Она не может
+переопределить флаг постоянства, принудительно определенный внутри плугина.
+
 
 #### Атрибут `sync`
 
+Символ может выполняться "синхронно" или "асинхронно". В синхронном режиме код
+символа будет запущен прямо в контексте текущего процесса - сервера klishd. В
+асинхронном режиме для запуска кода символа будет порожден (fork()) отдельный
+процесс. Запуск символа в асинхронном режиме является более безопасным, так как
+ошибки в коде не повлияют на процесс klishd. Рекомендуется использовать
+асинхронный режим.
+
+Возможные значения атрибута - `true` и `false`. По умолчанию `false`, т.е.
+символ будет выполняться асинхронно.
+
+Символы, при объявлении их в плугине, уже имеют признак синхронности. Символ
+может быть принудительно объявлен синхронным, асинхронным, либо плугин может
+отдать решение о синхронности на откуп пользователю. Если флаг постоянства
+объявлен принудительно в плугине, то настройка атрибута `sync` не будет влиять
+ни на что. Она не может переопределить флаг синхронности, принудительно
+определенный внутри плугина.
+
 
 #### Атрибут `exec_on`