tmux xclip копируют больше работу

Добавить After=mysql.service в Ваш сервисный файл (или изменение это к корректному сервисному названию), например:

[Unit]
Description=Boardies Email Server Startup Script
After=mysql.service

[Service]
ExecStart=/home/bits/EmailServer/start.email
Restart=always

[Install]
WantedBy=multi-user.target

Обратите внимание на то, что Вы не должны помещать свой сервисный файл в/lib/systemd/system, это - пользователь, предоставленный файлу, и необходимо только скопировать его в/etc/systemd/system.

Для получения списка всех сервисных файлов, можно использовать systemctl list-unit-files и определите корректное название своего сервиса базы данных (это - вероятно, или mysql.service или mysqld.service),

8
13.04.2017, 15:36
6 ответов

xsel утилита подобна xclip, но реализованный немного по-другому. Обычно я ожидал бы, что они будут вести себя таким же образом, но они не выполняют точно те же X вызовов библиотеки, таким образом, это в некоторых угловых случаях возможно xsel будет работать, но нет xclip, или наоборот. Попробуйте:

bind C-c run "tmux save-buffer - | xsel -ib"
bind C-v run "tmux set-buffer \"$(xsel -ob)\"; tmux paste-buffer"
9
27.01.2020, 20:09
  • 1
    Тот же результат - не делает работ для меня - работы как автономная команда, но возвращает пустую строку из такого связывать; Ubuntu 14.04, xsel 1.2.0, спасибо tmux 1.8-5 –  Vitaly Zdanevich 11.03.2017, 08:58

Я испытываю подобную проблему, и временный файл не поможет в данном случае, я боюсь. Это вызвано тем, что xclip кажется, ведет себя по-другому при порождении tmux, будучи выполненным "в интерактивном режиме" и ожидании другого приложения для взятия владения области буфера обмена. Попытайтесь использовать xclip -l 1 заставить его сразу выйти (см. страницу справочника для деталей).

1
27.01.2020, 20:09
  • 1
    , Может казаться, не получает ту работу работы. Это, на что должна быть похожей та привязка: связать C-c, выполненный "tmux сохранять-буфер - | буфер обмена xclip-l 1-i-sel"? –  Alexandr Kurilin 28.05.2013, 20:41
  • 2
    Вы могли, возможно, отправить, какое обходное решение работало на Вас? Это было бы довольно полезно также! –  Alexandr Kurilin 28.05.2013, 20:51
  • 3
    я использую bind C-y run-shell "tmux save-buffer - | xclip -l 1 -i". Уход о –  peterph 29.05.2013, 00:04
  • 4
    Да, тем не менее ничто, к сожалению. Tmux ни о чем не сообщает, ни делает xclip. –  Alexandr Kurilin 29.05.2013, 03:17
  • 5
    Для меня это ни о чем не сообщает также, но это работает. Проверьте что xclip делает, когда Вы пытаетесь скопировать буфер. Если это остается зависающим там ожидание чего-то, уничтожение его помогают? Кроме того, необходимо выйти, режим выбора ударом Входят (и следовательно хранение его в буфер), прежде чем Вы попытаетесь скопировать буфер в X буферов обмена. –  peterph 29.05.2013, 12:36

Добавление -b кому: run-shell (или run) команда решила проблему. С -b команда оболочки выполняется в фоновом режиме.

bind C-c run-shell -b "tmux save-buffer - | xclip -i -sel clipboard"

5
27.01.2020, 20:09
[119374] Хотя я больше не могу его воспроизводить, но вот технический ответ, что могло произойти в вашем случае.

Во-первых, вам нужно понять, как работает буфер обмена X11. Вы можете прочитать эссе jwz об этом: [119915]http://www.jwz.org/doc/x-cut-and-paste.html

Короче говоря, приложение, содержащее содержимое буфера обмена, должно работать до тех пор, пока другое приложение не заявит о своем праве собственности. Итак, когда вы запускаете [119917]xclip -i <<< test[119918], вы можете видеть, что xclip работает в фоновом режиме, пока вы не сделаете еще один выбор:

Теперь все в порядке, но когда вы выходите из этой оболочки, все процессы, принадлежащие этому сеансу, по умолчанию убиваются, посылая им HUP-сигнал. Это будет означать, что xclip будет убит, и вы больше не сможете получить доступ к содержимому буфера обмена. Итак, предлагаемое обходное решение (в случае, если у вас нет xsel) заключается в игнорировании HUP сигнала, используя следующую привязку:

xsel[119920] не затронута этой проблемой, потому что первое, что она делает после fork(), это отделяет себя от управляющего терминала, чтобы он не получал сигнал HUP при выходе из оболочки (вы даже не увидите его в выводе ps выше, а только когда вы сделаете [119921]ps -e | grep xsel[119922]). [119385]

2
27.01.2020, 20:09

Я использую рабочую конфигурацию:

# Yank to copy text with y.
bind-key -t vi-copy y copy-pipe "tmux save-buffer - | xclip -sel clipboard -i"

# Update default binding of `Enter` to also copy with this method.
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "tmux save-buffer - | xclip -sel clipboard -i"

# Toggle rectangular copy mode.
bind-key -t vi-copy 'C-v' rectangle-toggle

# Bind ']' to paste.
bind ] run "tmux set-buffer \"$(xclip -o -sel clipboard)\" && tmux paste-buffer"

# Toggle rectangular copy mode.
bind-key -t vi-copy 'C-v' rectangle-toggle

# http://askubuntu.com/a/507215/413683
set -g set-clipboard off
0
27.01.2020, 20:09

Это старый вопрос, но я подозреваю, что у меня есть решение, взятое со страницы Tmux в Arch wiki:

xclip также может быть использован для этой цели, в отличие от xsel он лучше работает при печати сырого битового потока, который не соответствует текущей локали. Тем не менее, лучше использовать xsel вместо xclip, потому что xclip не закрывает STDOUT после чтения из буфера tmux. Таким образом, tmux не знает, что задача копирования завершена, и продолжает ждать завершения работы xclip, тем самым делая tmux неотзывчивым. Обходным решением является перенаправление STDOUT xclip в /dev/null

Таким образом, ваша команда должна выглядеть так:

bind C-c run "tmux save-buffer - | xclip -i -sel clipboard >/dev/null"
1
27.01.2020, 20:09

Теги

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