На связанный вопрос в Ask Ubuntu
D
означает, что процесс находится в непрерывном спящем режиме, поэтому вы не можете убить его прерыванием
S
- для прерывистого сна
+
- это процесс переднего плана
l
означает, что он многопоточный
https://github.com/tmux/tmux/issues/733#issuecomment-277230881 упоминает, что
сообщение не готово нормально, tmux сообщает вам, что выполнение команды еще не завершено, он отобразит вывод, как только команда завершится
Я видел это после обновления с Ubuntu 16.04 до 16.10 с моим скриптом, который показывает ssh-сервер в формате состояния окна - он мигает при подключении. Фактически, я могу воспроизвести его, просто выполнив
tmux setw -g window-status-current-format '#(echo `tmux display-message -p "#W #{pane_pid}"`)'
, а затем ssh aslkfdsdkljfslkdsajf
, он будет мигать при попытке подключения.
Я предполагаю, что extip
требует времени, чтобы вернуть результат; что произойдет, если вы замените его сценарием оболочки, который просто выполняет echo 1
или sleep 1; echo 1
?
(Обратите внимание, что tmux должен кэшировать любые команды после их выполнения хотя бы один раз в этом окне / панели, но если сама команда изменится - как в моем примере выше - он не будет использовать Я отправил отчет об ошибке о том, что в таких случаях команда "не готов" отключена.)
Раньше я обманывал это, создавая экземпляр tmux с помощью элементарной display-message
команды (, например. "Welcome, $USER..."
), что, кажется, дает ему секунду или около того, чтобы запустить внешнее приложение в первый раз.
Конечно, зависит от ваших потребностей. Я запускаю tmux в сценарии своего профиля, но если вы запускаете tmux по запросу, вам может сойти с рук псевдоним...
# /usr/bin/tmux -V
tumx 2.4
# /usr/bin/tmux new-session \; display-message "Welcome, $USER..."