У меня есть скрипт Perl, выполняющийся как user1. Этот сценарий в основном используется для остановки/запуска или отскока процесса, выполняемого как user2 на RHEL. Теперь stop/start работает, так как я использую warpper user2 для запуска команд stop/start и bounce.sudo to root в середине скрипта
Проблема в том, что этот процесс представляет собой jvm, который обычно занят. Таким образом, остановка/запуск или отскок не будут работать все время, если jvm действительно занят. Поэтому я пытаюсь убить processid, используя kill -9 для более быстрого отскока.
Итак, могу ли я сделать sudo для user2 или root в середине моего скрипта Perl, выполняющегося как user1, чтобы убить -9 процесс.
Я попытался с помощью
su - user2 -c `kill -9 pid`;
sudo -u user2 -c `kill -9 pid`;
Так мой сценарий запуска/остановки/отскока работает как user1. Процесс остановки/запуска/отладки выполняется как user2. Я хочу, чтобы мой скрипт Perl убил процесс, если stop/start/bounce занимает больше 30 секунд.
Пожалуйста, помогите.
Как насчет 'system 'sudo -u user2 -c' kill -9 $ pid '"; '? – melpomene
Это похоже на работу, но не может пропустить пароль. Я попробовал вариант -i. – user3164754
Re: «Это похоже на работу, но не может пропустить пароль». Это контролируется редактированием файла конфигурации, созданного командой «visudo». – ikegami