Как убить все сеансы tmux (или, по крайней мере, несколько сеансов) из CLI?

Вы можете попробовать что-то вроде этого:

shopt -s nullglob
for i in *
do
    if [ -d "$i"  ]
     then
        continue
    else
        inkscape "$i"

    fi
done

Я протестировал его в каталоге «Картинки» и, похоже, работал.

Я еще не совсем понял первую строку , но он должен помочь убедиться, что мой * работает. Цикл for затем циклически перебирает все в текущем каталоге по одному за раз. Если это не каталог, он открывает его в Inkscape для редактирования.

Когда вы закончите редактирование и закрытие inkscape, следующее изображение откроется, пока не появится больше изображений.

Для вашего конкретного случая (после прочтения связанный вопрос), это может работать лучше. Запомните cd до /usr/share/unity/icons, а затем запустите это:

for i in file1.svg file2.svg file3.svg
do
    if [ -d "$i"  ]
     then
        continue
    else
        inkscape "$i"

    fi
done  

, заменив file1.svg file2.svg file3.svg на список файлов, которые вы хотите отредактировать.

1
задан 5 January 2017 в 21:12

2 ответа

Вы можете использовать tmux kill-server для чистого и изящного уничтожения всех открытых сеансов tmux (и сервера).

Если вы находитесь в сеансе tmux, который хотите сохранить, используйте tmux kill-session -a, чтобы закрыть все другие сессии.

Чтобы закрыть определенный сеанс, используйте tmux list-sessions для идентификации сеанса, который вы хотите убить, а затем используйте tmux kill-session -t targetSession, чтобы убить этот конкретный сеанс.

Также вы может чисто и грациозно убить все tmux-процессы с помощью pkill -f tmux.

Надеюсь, что это поможет.

57
ответ дан 23 May 2018 в 02:44
  • 1
    ps aux | grep tmux после tmux kill-server все еще показывает процесс tmux ... То же самое происходит с pkill -f tmux, как и в моем ответе. Вы можете это объяснить? Благодаря, – JohnDoea 5 January 2017 в 10:20
  • 2
    @Benia, вы уверены, что не видите процесс grep tmux (который включен в вывод ps вашего исходного вопроса)? – steeldriver 5 January 2017 в 17:45
  • 3
    Если вы выдаете ps aux | grep blablablawhichdoesntexist, он всегда будет показывать хотя бы одну строку, соответствующую команде grep blablablawhichdoesntexist. – dgonzalez 5 January 2017 в 18:14
  • 4
    Вы пропускаете флаг -t, потому что он показывает ошибку, если флаг -t установлен для убийства определенного сеанса. [F3] – 1rq3fea324wre 1 November 2017 в 07:03
  • 5
    Раньше это было очень болезненно tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill – Foad 1 February 2018 в 18:35

Это будет отображать и убивать все сеансы:

tmux list-sessions | awk 'BEGIN{FS=":"}{print $1}' | xargs -n 1 tmux kill-session -t
3
ответ дан 23 May 2018 в 02:44

Другие вопросы по тегам:

Похожие вопросы: