Есть ли механизм для запуска «службы» пользователем без полномочий root?

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

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

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

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

  • Как переименовать несколько файлов
  • В RHEL / CentOS 7, действительно ли mv делает cp & rm в одной и той же файловой системе?
  • Команда ssh неожиданно продолжается в другой системе после завершения ssh
  • Последствия создания системных учетных записей «useradd -r» Linux Fedora / RHEL / CentOS
  • Разрешение запрещено для файла cacerts - SSL
  • Как установить g ++ на RHEL6?
  • Как заблокировать устройства USB на основе класса устройств в Linux
  • Что определяет хеширование паролей pam?
  • One Solution collect form web for “Есть ли механизм для запуска «службы» пользователем без полномочий root?”

    экран или tmux

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

    фоновый

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

     $ disown -a 

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

     $ nohup myexec & 

    Когда вы 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». Двойная проверка показывает, что она теперь ушла.

    Linux и Unix - лучшая ОС в мире.