СЯУ про существование такой замечательной программы, как reptyr(1). Узнал, как ни странно, из DistroWatch Weekly: http://distrowatch.com/weekly.php?issue=20140922
Юзкейс:
1) запускаем в терминале какую-то программку;
2) появляется желание терминал закрыть (потому что это, например, ssh-сессия, а вам пора идти);
3) осознаём, что запустили программу не в tmux/screen;
4) плачем;
5) вспоминаем про reptyr;
6) открываем новый терминал;
7) в новом терминале создаём tmux-/screen-сессию;
8) выясняем PID запущенной на первом шаге программы;
9) в сессии делаем reptyr PID
;
10) детачимся, дисконнектимся, уходим радостные по своим делам.
Понял, что taskwarrior не совсем подходит для моего workflow, и решил написать своё.
Подошёл к процессу основательно: придумал имя, понаписал user story.
Потупил немного на написанное и понял, что половина решается calendar
, завёрнутым в while
, ещё часть — кучкой plain text (ну, может быть, Markdown-) файлов, а остальное — всё тем же taskwarrior. Что-то одновременно и радостно, и грустно.
Пишу текст. Закрыл ненадолго редактор, чтобы подвигать файлики, и случайно сделал git reset --hard HEAD^, не подумав обо всех последствиях.
Потом вспомнил о своей привычке на каждый чих делать git diff, прокрутил буффер вверх, скопировал готовый патч в файлик, накатил и радуюсь жизни дальше.
А что бы делал в таком случае обладатель красивого и суперудобного GUI?
Я правильно понимаю, что на SSD лучше использовать файловую систему с поддержкой copy-on-write (рейзер какой-нибудь, или zfs/btrfs)? Применимо ли то же самое к обычным флешкам и SD-карточкам?
По первому вопросу не нашёл авторитетной информации (только блогпосты какие-то и вопросы в списках рассылки), второй не знаю, как гуглить.
https://01.org/suspendresume/blogs/tebrandt/2013/hard-disk-resume-optimization-simpler-approach Intel предлагает при resume не ждать, пока диски полностью оживут, и сразу запускать систему. Все запросы уходят в очередь, так что информация не теряется. Три теста производительности показали прирост от 7.8 до 12 раз, во всех случаях результирующее время пробуждения — секунда или меньше.
Все знают, что в Linux можно удалить открытый кем-то файл, при этом имя из файловой системы пропадает сразу, а место, занятое данными, освободится лишь после закрытия файла всеми процессами.
При обновлении системы ситуацию с уже удалёнными, но всё ещё кем-то используемыми файлами можно встретить сплошь и рядом. Актуальнее всего это для библиотек — даже если вы обновили openssl до 1.0.1g, у вас всё ещё могут быть запущены процессы, юзающие 1.0.1f или ниже.
Поэтому один добрый человек когда-то показал мне вот такую команду, чтобы я знал, какие сервисы нужно перезапустить после обновления:
$ sudo lsof / | grep DEL
А пост этот на самом деле о том, что для перезапуска udisksd, polkitd и console-kit нужно перезапускать dbus.
Про новую замену спинлокам в ядре: «MCS locks and qspinlocks» http://lwn.net/Articles/590243/
Есть такая проблема: у внешней и встроенной в ноут клавиатур отдельные состояния Caps Lock. При наборе они xor'ятся. Как воспроизвести:
0) обе клавы с выключенным капсом;
1) нажимаем Caps Lock на одной из клавиатур, её индикатор загорается, а у второй — нет;
2) теперь можно набирать заглавными буквами с любой клавиатуры;
3) нажимаем Caps Lock на другой клавиатуре, её индикатор тоже загорается, состояние первой не меняется;
4) теперь можно с любой клавиатуры набирать строчными буквами.
Меня это раздражает, потому что:
Вопрос: как объединить индикаторы? DDG://linux separate caps lock states ничего не подсказал :(
Админы, а с помощью чего можно автоматизировать настройку сервера по шаблону? Чтобы я мог написать какой-то шаблон, сказать одну команду — и оно залогинилось на сервер, поставило nginx, apache, а потом поменяло конфиги так, чтобы nginx стал проксировать запросы в apache. При чём если базовый конфиг поменялся (майнтейнер пакета решил, например, сменить какие-то дефолты), то программа эта должна мне об этом сообщить.
У меня в голове уже вызревает велосипед на shell с использованием patch, но должно же быть готовое, уже отлаженное решение!
Всю жизнь релоадил и ребутал сервисы, вызывая скрипты прямо из /etc/init.d (например, /etc/init.d/tor reload).
Однажды, сев за машинку с Ubuntu и сделав то же самое, я получил подсказку о том, что можно делать просто service tor reload. Подумав, что это причуда Ubuntu, поюзал и успешно забыл.
А сегодня, читая хаутушку, сделал-таки man service, посмотрел на дату в футере (2006-й год) и прозрел.
Учиться, учиться и ещё раз учиться!