для чего нужен apache-htcacheclean и почему он находится в /etc/init.d/

Это легко определить; Мне стало любопытно, и я решил сначала протестировать сценарий «наихудшего -случая», определив функцию в конце файла сценария awk :

.

$ cat go.awk
BEGIN {
  print "The BEGIN block is executing"
  print reverse("The BEGIN block is executing")
}

{
  print reverse($0)
}

function reverse(str) {
  trs=""
  for(i=length(str); i > 0; i--) {
    trs=trs substr(str, i, 1);
  }
  return trs
}

И с:

$ cat input
line one
line two
line three

... результат:

$ awk -f go.awk < input
The BEGIN block is executing
gnitucexe si kcolb NIGEB ehT
eno enil
owt enil
eerht enil

Вы можете видеть, что функция была определена (функция «определение» была «выполнена» )до ввода блока BEGIN, так как блок BEGIN успешно вызвал мою пользовательскую -определенную reverseфункцию.

Чтобы убедиться, что функция не выполняется во время ее определения, просто вставьте оператор printвнутрь функции и обратите внимание, что этот оператор не выводит никаких результатов до вызова функции. .

Спецификация POSIX для awk говорит, наиболее уместно:

A function can be referred to anywhere in an awk program; in particular, its use can precede its definition. The scope of a function is global.

Справочная страница gawk предполагает нечто подобное:

... Gawk reads the program text as if all the program-files and command line source texts had been concatenated together. This is useful for building libraries of AWK functions, without having to include them in each new AWK program that uses them. It also provides the ability to mix library functions with command line programs.

...

Gawk executes AWK programs in the following order. First, all variable assignments specified via the -v option are performed. Next, gawk compiles the program into an internal form. Then, gawk executes the code in the BEGIN rule(s) (if any), and then proceeds...

1
02.05.2020, 20:46
1 ответ

по умолчанию

По умолчанию этот скрипт не выполняет никакой функции. Существование юнит-файлаapache-htcacheclean.serviceполностью исключает всю его функцию, и systemd игнорирует его.

при использовании системы ван Смуренбурга

Когда используется система van Smoorenburg init+ rc, этот скрипт делает именно то, что сказано в комментарии:он запускает программу htcacheclean, которая имеет документацию, предоставленную Apache. Он вызывается ван Смуренбургомrcтем же обычным способом, что и другие rcскрипты , в результате обычной фермы символических ссылок (или файла -rc-файла ), поддерживаемого для эта система в /etc/rc*.d/. Это точно так же, как и другие современные -формы письма ван Смуренбурга rc, чей «новый» (по состоянию на 2014 год )формат задокументирован в руководстве.

А там, где находится каталог кеша, — это параметр конфигурации для службы, установленный вами(со значением по умолчанию )с именем HTCACHECLEAN_PATH.

Дополнительная литература

1
28.04.2021, 23:16

Теги

Похожие вопросы