2016-04-18 2 views
1

Я закончил установку supervisord на моем centos6, он работает также хорошо. Но я обнаружил, что могу использовать команду «убить», чтобы убить сам супервизор. Я думаю, что это неправильно, я полагаю, что супервизор не является убиваемым, иначе он не может гарантировать безопасность других служб, которые его контролируют. Так как я могу сделать supervisord не убиваем, пожалуйста.Как сделать superisord unkillable

+1

привет, ребята, если вы это знаете, не могли бы вы дать мне подсказку, это очень сложно найти результат в Google, пожалуйста, не проголосуйте за вопрос. – Jack

+0

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что его явно не связано с программированием и принадлежит @ http://unix.stackexchange.com –

+0

Вы не можете. Единственное, что вы можете сделать, это запустить супервизор в качестве другого пользователя, тогда он не будет уничтожен другими способами; Однако root может убить его. – Dencker

ответ

2

Это, по возможности, невозможно сделать правильно, скажем, хотя есть что-то, что вы могли бы попробовать, и я думаю, что это сработает. Теоретически только root может убить все успехи, а все остальные могут быть убиты их владельцем. На самом деле вы можете попытаться создать пользователя с нерушимым паролем и получить root для запуска procceess с использованием su. (Корень не будет предложено ввести пароль, но «су» изменится для этого пользователя)

su newacct ksh -c "/home/newacct/bin/the_process_to_start.ksh and its parameters" 
su - newacct ksh -c "/home/newacct/bin/the_process_to_start.ksh and its parameters" 

Тир говорит, что вы должны выполнить .profile этого пользователя. Это зависит от того, хотите вы этого или нет. (Вам не нужно выполнять скрипт, но я предположил, что вы, вероятно, в этом примере.)

Таким образом, никто, кроме root, не может убить этот процесс, потому что никто не может стать этим пользователем.

Возможно, вы захотите, чтобы Google сделал незашифрованный пароль в/etc/shadow. На самом деле это просто.

+0

Или скажите, когда супервизор был убит, как он снова начнет восстанавливаться, следующий процесс будет пережить, как только вы его убьете: root 1 0 0 14:21? 00:00:00/usr/bin/python/usr/bin/supervisord – Jack

+1

если он убит, все дочерние процессы будут разбиваться с ним, я думаю, нет времени, чтобы спасти их, повторно открыв его ...... все же, я думаю ... главное - сохранить его в живых, и это единственный способ, о котором я могу думать ... – hedgehog

Смежные вопросы