wait-for
Таким образом, базовое использование wait -for не слишком сложно, если рассматривать его как аналог потоковой обработки примитивов параллелизма
На самом деле это не связано с другими функциями tmux, это просто удобная реализация IPC.
wait-for event_name
похоже на ожидание события wait-for -S event_name
является средством сигнализации события
Опции -U
и -L
ортогональны и действуют как семафоры
Вы можете решить эти виды состояния гонки с помощью wait-for
, но только если команды синхронны.
tmux send-keys 'sync-command ; tmux wait-for -S command-finished' C-m
tmux wait-for command-finished
Проблема, с которой вы столкнулись, заключается в том, что команда ssh не является синхронной. :Вы не можете сказать, когда она завершилась.
Просматривая руководство мы находим директиву LocalCommand
, которая, похоже, делает то, что нам нужно :запустить команду локально после завершения соединения, чтобы мы могли вызвать
ssh root@iris.tatw.name -o 'PermitLocalCommand yes' -o 'LocalCommand tmux wait-for -S done'
Если ваш рабочий каталог /media/whoami/t9gjkg-tji-gjgj-gogjf-gjgu-i94k4-k5k
, то каталог t9gjkg-tji-gjgj-gogjf-gjgu-i94k4-k5k
не найден, потому что вы уже находитесь в нем. Затем вы можете использовать
sudo chmod 777.
для изменения разрешений.
Или просто используйте абсолютный путь для выполнения команды. Этот способ не зависит от рабочего каталога:
sudo chmod 777 /media/whoami/t9gjkg-tji-gjgj-gogjf-gjgu-i94k4-k5k
Это может кому-то помочь -в моем случае проблема заключалась не в правах на чтение пути к самому устройству, а в каталоге /media/[user]. Вероятно, какая-то проблема вызвана многочисленными обновлениями dist -(, первоначальная установка была очень старой ). Итак, если вы введете
ls /media/[user]
и [tab] не показывают каталог устройства, вероятно, проблема в этом. Просто попробуйте:
sudo chown [user] /media/[user]
Это должно решить проблему.