Как запустить демона брелока для ключей после катастрофического отказа оболочки гнома?

Вы могли бы попробовать параллель GNU:

find . -type f | parallel -k -j150% -n 1000 -m grep -H -n STRING {}

(из http://www.gnu.org/software/parallel/man.html#example__parallel_grep)

Править: Обратите внимание, что другие комментарии, которые указывают, что grep будет работать быстрее последовательно, если узкое место будет IO, корректны.

2
25.02.2012, 14:22
2 ответа

ОБНОВЛЕНИЕ: Эти инструкции могут быть устаревшими. Это появляется в недавних системах, которые переместили сокеты брелока для ключей гнома, формируют случайный каталог в ~/.cache/ кому: /run/user/<ID>/keyring/ (по крайней мере, на Debian Jessie), таким образом, простой перезапуск должен быть достаточным.

Это немного хитро, поскольку гном-демон брелока для ключей устанавливает параметры уникальной среды, прежде чем Ваша сессия запустится, и эта среда используется для доступа к канавке демона сокет. Среда копируется в каждое приложение, таким образом, нет никакого способа сбросить все переменные среды. Существует путь, который включает вручную перезапуск демона, symlinking старый dir к новому (таким образом, старая среда все еще работает), и затем запуск отдельных сервисов.

  1. Удостоверьтесь, что нет никакого гнома-демона брелока для ключей, работающего (эта команда не должна возвращать pid, если она делает необходимо уничтожить ее),

    pgrep -f gnome-keyring-daemon
    
  2. Очистите старые сокеты брелока для ключей

    rm -rf ~/.cache/keyring-*
    
  3. Запустите процесс демона - мы используем setsid и перенаправляем SDTIN, OUT & ERR, таким образом, нет никакой ассоциации к нашему shell/tty. Это создаст новый каталог с сокетом управления в ~/.cache/.

    setsid /usr/bin/gnome-keyring-daemon </dev/null >/dev/null 2>&1
    
  4. Символьная ссылка новый каталог сокета к старому (идеально заменяют подстановочный знак фактическим каталогом, но так как мы удалили их всех ранее, должен быть только один):

    ln -s ~/.cache/keyring-* $GNOME_KEYRING_CONTROL
    

    NB: у меня нет Вашей проблемы оболочки гнома, но если Вам не экспортировали эти переменные из того, где Вы запускаете оболочку гнома Вы, многие должны вручную передать следующие переменные среды оболочке гнома: GPG_AGENT_INFO GNOME_KEYRING_CONTROL SSH_AUTH_SOCK. Необходимо смочь получить значение на путь, удаленный в № 2 (если у Вас есть несколько каталогов, необходимо искать новое).

  5. Запустите другие сервисы брелока для ключей гнома (они соединятся с демоном, использующим сокет, и включат сервисы на него, если все пошли прекрасные до сих пор):

    /usr/bin/gnome-keyring-daemon --start --components=pkcs11
    /usr/bin/gnome-keyring-daemon --start --components=gpg
    /usr/bin/gnome-keyring-daemon --start --components=ssh
    

    Эти последние команды распечатают переменные среды... можно проигнорировать их, просто удостоверьтесь, что нет никаких ошибок сокетного соединения.

Кроме того, если Вы хотите к очистке старые сокеты, можно добавить a @reboot запись крона, которая делает очистку:

find ~/.cache/ -maxdepth 1 -type l -name 'keyring-*' -delete
7
27.01.2020, 21:49
  • 1
    На CentOS 7.3 / брелок для ключей гнома 3.14, не было ничего связанного с брелоком для ключей в ~/.cache/ таким образом, те шаги могли быть пропущены; просто уничтожение и setsid перезапуск был достаточен.Далее ssh вход в систему попросил у меня моего пароля правильно и кэшировался как ожидалось. –  Aaron D. Marasco 13.02.2017, 22:21
  • 2
    Действительно у меня больше нет брелока для ключей - файлы с июля 2015, который, кажется, соответствует моему обновлению от Debian 7/хрипящий к 8/Jessie. Я прекратил полагаться на демона брелока для ключей даже перед этим, таким образом, я даже не знаю, как это, как предполагается, работает теперь. –  Thomas Guyot-Sionnest 15.02.2017, 08:59

Это должно выполнить чистую перезагрузку демон:

gnome-keyring-daemon -r -d

Источник: ArchLinux

8
27.01.2020, 21:49

Теги

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