Существует ли механизм запуска «службы» пользователем, не являющимся пользователем root?

Существует ли механизм запуска «службы» пользователем, не являющимся пользователем root?

Есть ли способ создать постоянно работающий фоновый процесс, которым я (обычный пользователь, не являющийся пользователем root) могу управлять?

Все, что мне нужно, это иметь возможность запускать, останавливать и перезапускать процесс. Мониторинг по PID и отправка SIGHUP или SIGINT для завершения — это нормально. Я согласен использовать сложный скрипт bash, он не должен быть чем-то системным. Только для меня.

Мне также очень нужно, чтобы он не останавливался, когда я выхожу из SSH.

Есть ли способ сделать это в RHEL 6.4?

решение1

экран или tmux

Конечно, вы можете запускать процессы и затем запускать их непрерывно, используя терминальный мультиплексор, такой как screen или tmux. Процессы могут продолжать существовать в сеансе screen или tmux, и вы можете подключаться/отключаться от любого из них (screen или tmux) по мере необходимости.

фонирование

Вы можете запустить любой процесс, перевести его в фоновый режим и отключить от текущего терминала с помощью команды disown.

$ disown -a

Кроме того, если вы просто хотите запустить процесс и не переводить его в фоновый режим, disownвы можете использовать команду nohup.

$ nohup myexec &

При выходе из оболочки myexecона продолжит работу.

Пример

Запустить фальшивый процесс.

$ sleep 12345 &
[1] 24339
$

Убедитесь, что мы это видим:

$ pgrep -f "sleep 12345"
24339

Но он все еще подключен к нашему терминалу:

$ jobs
[1]+  Running                 sleep 12345 &

Итак, начнем disown:

$ disown -a
$ jobs
$

Смотрите, он все еще работает:

$ pgrep -f "sleep 12345"
24339

Теперь давайте выйдем из системы и войдем снова. Видите, он все еще там:

$ pgrep -f "sleep 12345"
24339

Вы можете завершить этот процесс в любое время стандартными средствами:

$ pkill -HUP -f "sleep 12345"
$ pgrep -f "sleep 12345"
$ 

Вышеуказанный код отправит сигнал HUPпроцессу с именем, соответствующим шаблону "sleep 12345". Двойная проверка показывает, что теперь он исчез.

Связанный контент