sed -e 's/ca cert.crt/<ca>/' -e 'T' -e 'r cert.crt' -e 'a\</ca>' client-template.ovpn
Некоторые вопросы:
sleep
инг может быть предположительно оправдан. Тем не менее, последние версии dmesg
имеют флаг для следования за выводом , так что вы можете переписать все как (непроверенное)
while true
do
dmesg --follow | tail --follow --lines=0 | grep --quiet 'BUG: workqueue lockup'
killall someprocessname
done
[
это то же самое, чтоtest
-см. help [
. Вариант ответа @l0b0:
dmesg --follow | awk '
/BUG: workqueue lockup/ { system ("killall someprocessname") ; rem="done at each occurrence. You could add further things, like print to a logfile, etc.,"
}'
Это давайте сделаем цикл, который имеет некоторые преимущества:
killall
при появлении строки поиска «ОШИБКА :workqueue lockup», что улучшает другой ответ. Для проверки :Вы можете поместить это в скрипт с именем thescript
и выполнить nohup thescript &
, чтобы thescript
продолжал работать даже после выхода из сеанса.
Как только вы убедитесь, что он работает, завершите его, а затем вы сможете (вместо того, чтобы запускать его каждый раз в оболочке с помощью nohup
), преобразовать его в daemon script
, который затем можно запустить на текущем уровне выполнения..
т.е. :используя другой сценарий в качестве модели (вам необходимо иметь по крайней мере разделы запуска, остановки и состояния ), вы можете соответствующим образом изменить thescript
, а затем поместить его в /etc/rc.d/init.d
, и иметь символическую ссылку на него с именем Sxxthescript
под соответствующим (s )/etc/rc.d/rcN
, N
является числом для вашего обычного уровня запуска (см. верхние строки who -a
, чтобы узнать текущий уровень запуска -). И также иметь соответствующие символические ссылки Kxxthescript
на каждом (или почти на каждом )уровне выполнения, чтобы скрипт надлежащим образом уничтожался при переключении уровней выполнения.
Или выполните «соответствующие действия», чтобы запустить/остановить его через systemd или любую аналогичную систему, используемую в вашем дистрибутиве.