Как отключить защиту после удаления Ruby?

Я установил Ruby на сервер (1.9.3 через RVM), настроил Guard для некоторых каталогов, затем убедился, что мне это больше не нужно, и удалил Ruby (через команду RVM).

Моя проблема в том, что любой доступ к каталогам, за которыми наблюдает Guard, по-прежнему вызывает попытку запуска Ruby (которого больше нет), что приводит к ошибке.

Я думал, что, поскольку Guard является жемчужиной Ruby, удаление Ruby «отключит» Guard. Кажется, что это нечто большее, и что какой-то процесс все еще остается.

Как убить призрака охранника?


Другой поток предложил мне запустить ps aux | grep guard, чтобы найти PID процесса защиты, а затем убить его, но единственное, что находит, — это сам grep guard:

root      6754  0.0  0.0   6384   676 pts/1    S+   13:45   0:00 grep guard

Похоже, чем бы ни был этот "призрак охранника", он не называется guard.


Возможно, это не актуально, но если это так, то guard был запущен с помощью команды Drupal Drush drush omega-guard, которая является частью темы Drupal Omega-4, и вот пример ошибки, которую вызывает ghost of guard (это доступ к Сервер Centos из Windows с использованием SFTP):

введите здесь описание изображения


person user56reinstatemonica8    schedule 23.08.2014    source источник
comment
Избавьтесь от |grep guard и начните искать построчно... Если он работает, он должен быть там, возможно, не так, как вы ожидаете.   -  person Nick Veys    schedule 23.08.2014
comment
Да, я надеялся, что кто-нибудь знает, что использует Guard. Я гуглю каждый процесс, который я не узнаю, и это занимает некоторое время. Кроме того, если / когда мне повезет, я не уверен, как я узнаю, что это то, что использует Guard.   -  person user56reinstatemonica8    schedule 23.08.2014
comment
Кроме того, единственными процессами со временем запуска, которые имеют смысл с точки зрения присутствия, когда я запускал защиту, являются php-cgi (командная строка php), httpd (apache на centos), sshd и vlogger, ни один из которых не кажется правильным.   -  person user56reinstatemonica8    schedule 23.08.2014
comment
Только что попробовал перезагрузиться - не помогло, призрак все еще там. Я думаю, что это не процесс, а какое-то изменение конфигурации, внесенное Guard.   -  person user56reinstatemonica8    schedule 23.08.2014


Ответы (1)


Эта команда должна вывести список всех процессов, использующих подсистему Linux inotify, на которой основан Guard:

$ ps -p `find /proc -name task -prune -o -type l -lname anon_inode:inotify -print 2> /dev/null | cut -d/ -f3`
  PID TTY      STAT   TIME COMMAND                                                                                                                             
 1102 ?        Ssl    0:16 evince
 3651 ?        Ss     0:01 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
 4071 ?        Sl     0:00 /usr/lib/x86_64-linux-gnu/ibus/ibus-gconf
 4075 ?        Sl     1:08 /usr/lib/x86_64-linux-gnu/ibus/ibus-x11 --kill-daemon
 4092 ?        Sl     0:18 /usr/lib/ibus-mozc/ibus-engine-mozc --ibus
 4468 ?        Ssl  188:36 skype
 4788 ?        S<l  622:27 /usr/bin/pulseaudio --start --log-target=syslog
 7102 pts/0    S+     0:00 inotifywait -r -m -e modify --format %f JavaFXSceneBuilder2.0/
 7998 ?        Ssl    6:53 gvim
 8549 ?        Ssl   11:11 /opt/google/chrome/chrome 
 8597 ?        Ssl  307:04 /usr/lib/firefox/firefox
 9459 ?        Sl    50:05 /usr/lib/firefox/plugin-container /usr/lib/flashplugin-installer/libflashplayer.so -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 8597 true plugin
16444 ?        Ssl    1:31 gvim
16452 ?        Ssl   24:39 /home/nodakai/.dropbox-dist/dropbox-lnx.x86_64-2.10.27/dropbox
24514 ?        S      0:01 /usr/lib/gvfs/gvfs-gdu-volume-monitor
24527 ?        Sl     0:00 /usr/lib/gvfs/gvfs-afc-volume-monitor
32491 ?        Sl    11:10 /usr/lib/libreoffice/program/soffice.bin --splash-pipe=5

Вы также можете снова установить Ruby и Guard, чтобы удалить их должным образом.

person nodakai    schedule 23.08.2014
comment
Кроме того, эта команда просто выдает ошибку ERROR: List of process IDs must follow -p. (оболочка Centos SSH) - person user56reinstatemonica8; 24.08.2014
comment
тоже find /proc -name task -prune -o -type l -lname anon_inode:inotify -print 2> /dev/null | cut -d/ -f3 ничего не находит - person user56reinstatemonica8; 24.08.2014
comment
Можете ли вы запустить setopt -x для печати каждой команды, которую вы запускаете в сеансе Bash? Я подозреваю, что то, что вы называете Drupal-Omega (я не знаю, что это такое), модифицировало ваш .bashrc для вставки хуковых команд. - person nodakai; 24.08.2014
comment
Это скрипт PHP-CGI. Это действительно полезная информация, спасибо, я изучу .bashrc - person user56reinstatemonica8; 24.08.2014