Предположим, что вы просто хотите завершить все, что делает ваш код, когда получено новое прерывание, следующий сценарий bash отлично подходит для этого:
#!/bin/bash
my_function () {
sleep infinity
}
declare -A cache
inotifywait -q -m -e close_write,create --recursive../orgmode-parse-print |
while read -r filename event; do
if [ "${cache[pid_my_function]}" ]; then kill "${cache[pid_my_function]}"; fi
echo $filename
echo $event
my_function &
cache[pid_my_function]=$!
done
По сути, сценарий помещает длинный процесс (, представленный sleep infinity
), внутрь функции, поэтому он может выполняться как независимый процесс при вызове функции с &
. Команда $!
печатает номер процесса внутри переменной, чтобы его можно было остановить позже, когда поступит новое прерывание...
OBS :Этот сценарий убивает то, что делает ваш код, когда получено новое прерывание, но я не уверен, действительно ли вы хотите это делать.Вы можете просто запускать каждый вызов прерывания как отдельный процесс, используя вместо этого функцию с &
, не обязательно убивая процесс, так что вы будете уверены, что ваш скрипт выполняется при всех прерываниях...
Недавно я потратил довольно много времени на отладку чего-то подобного. Глядя на то, что вы здесь сделали, я не думаю, что вам нужна эта строка:
$wgLDAPRetrievePrefs = array( 'EUROPE.LAN' => true );
и закомментированные строки делают чтение немного запутанным. Однако из того, что я смог найти, здесь может помочь небольшой патч :
.diff ~/src/LdapAuthentication/LdapAuthenticationPlugin.php extensions/LdapAuthentication/
532a533,536
>
> // If we are going to find and entry we need to bind first?
> $bindval = self::ldap_bind( $this->ldapconn, $this->getConf('ProxyAgent'), $this->getConf('ProxyAgentPassword') );
У меня есть это изменение, которое я внес, ожидая ответа или экспертной оценки на сайте MediaWiki :https://www.mediawiki.org/wiki/Topic:Vr5s4thrk4imbxjx
но, насколько я могу судить, это работает, и это самое главное для меня сейчас (На самом деле мне потребовалось довольно много времени, чтобы решить ).