Я предполагаю, что ваш xxx
является подставкой -для какого-то паттерна.
delete_lock () {
LOCK="$(grep -m1 -o "lockname:xxx")"
if [ -n "${LOCK#lockname:}" ]; then
release_lock "${LOCK#lockname:}"
fi
}
node foo.js | delete_lock
Это остановит обработку данных, как только будет обнаружено первое совпадение для lockname:xxx
. Затем он использует расширение параметра для удаления префикса lockname:
и, при условии совпадения (, например. xxx
, запускает release_lock
на нем (например.release_lock "xxx"
).
Если вы не хотите, чтобы вызов node
был прерван, или вам нужно более одного совпадения, удалите параметр -m1
для grep
, однако обратите внимание, что кавычки могут не работать с вашим release_lock
код (и будьте осторожны при удалении этих кавычек, вы не хотите допускать мошеннических персонажей! ).
Не хватает не команд. Вы можете поместить копии команд в контейнер. Или там эквивалент. Чего не хватает, так это доступа к информации, которая им нужна.
Вы можете добавить это мое крепление /proc
с хоста в контейнер. Будьте осторожны, так как это разрушит всю изоляцию . Вы можете смонтировать его только для чтения -и hidepid=2. Могут быть и другие варианты.