Да, дочерние процессы, запущенные с tmux -c "start process here"
, по-видимому, переживают соответствующие сеансы tmux
. Я изучил обширную справочную страницу tmux
и какое-то время надеялся, что глобальная настройка хука tmux
команды after -может помочь. После -крюки имеют следующий вид:
$ tmux set-hook -g after-session-closed your_cmd_here
где «ваш _cmd _здесь» мог быть использован для уничтожения дочернего процесса, создающего ваш бесконечный цикл. Но это не помогает, потому что «ваша _cmd _здесь» на самом деле должна быть tmux
cmd, а не командной оболочкой linux.
Вместо этого можно быстро добавить строку в бесконечный цикл вашего /path/loop.sh
скрипта, например:
[ "x$(ps -e | grep tmux | grep -v grep)" = "x" ] && break
Это вырвет вас из бесконечного цикла, как только tmux
не покажет ни одного активного процесса в выводе ps -ae
. Наоборот, если отображается связанный с tmux
процесс, цикл продолжается без изменений.
На самом деле это лучшая версия вышеприведенного теста, для крайнего случая, когда вы должны выйти из tmux
сеанса (с ), но все равно, например. процесс man tmux
, активный в вашей системе, это:
[ $(\ps -e | awk 'BEGIN {rv=0}; tolower($0) ~/tmux/ {if ($4 == "tmux") {rv=1}; exit} END {print rv}') == "1" ] && break
tmux
появляется в выводе \ps -e
, но не как основной процесс, т.е. не в позиции 4 в строке вывода ps -e
, а как аргумент запущенному процессу, или случайно как строку (sub -), встроенную в вывод \ps -e
.ps
, добавив обратную косую черту перед cmd как \ps
. Это делается для того, чтобы модифицированные версии cmd не путались с позиционной нумерацией параметров в awk
. Например. например, если вы использовали \ps -eF
вместо \ps -e
, вам нужно будет изменить $4
на $11
. ХТН.
Вы не можете использовать этот диск для пула zfs
, потому что диск используется для корневой файловой системы (/
), и это место, где находится ваша операционная система.