Есть ли механизм для запуска «службы» пользователем без полномочий root?
Есть ли способ, которым я могу постоянно работать, фоновый процесс, который может контролироваться мной (обычный, не root-пользователь)?
Все, что мне нужно, это запустить, остановить и перезапустить процесс. Мониторинг с помощью PID и отправка SIGHUP или SIGINT для завершения – это нормально. Я в порядке с использованием сложного сценария bash, он не должен быть чем-то общесистемным. Только для меня.
- Почему я не могу найти параметр -f для команды shutdown в man?
- Отправка команды на экран и syslog
- debian / смотреть для Fedora
- Как извлечь компакт-диск Linux Install во время установки?
- rsyslogd Повторяется HUPed
Мне также очень нужно, чтобы он не останавливался, когда я выхожу из ssh.
Есть ли способ сделать это в RHEL 6.4?
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». Двойная проверка показывает, что она теперь ушла.