2014-01-04 3 views
0

Как я могу найти, что процесс принадлежит той оболочке?Найти оболочку владельца для процесса

Это полезно, поскольку у меня есть сервер с несколькими зарегистрированными пользователями и несколько длительных процессов, и я хочу знать, какие пользователи могут принудительно выходить из системы, не останавливая их начатых заданий.

Результат ps сообщает TTY, но это не полезно, так как даже после отказа от работы его TTY остается прежним. Итак, как я могу узнать, вызвал ли пользователь disown/nohup его запущенные процессы?

+0

Какие os вы используете? – Harald

+0

Я предлагаю вам задать этот вопрос на serverfault.com, вместо этого он более подходит. –

+0

@RobinGreen: Если OP не ищет программного решения, не сообщая нам. Но тогда мы увидим примерный код в вопросе, не так ли? – grebneke

ответ

3

Вы не можете найти «оболочку владельца» в том смысле, в котором вы описываете, потому что такой вещи нет. Вы можете найти родительский процесс, который может быть оболочкой; но вы не можете знать, отключила ли оболочка работу, потому что эта операция является чисто внутренней для оболочки.

Что вы действительно должны делать, это проинструктировать своих пользователей начать длительные программы внутри Screen или Tmux. Это несколько сложные программы, но для базового использования они очень просты.

  • Запустить сеанс экрана, выполнив команду screen.
  • Вы можете запускать команды внутри этого сеанса, и они будут работать даже при выходе из системы.
  • Если вы хотите выйти с командой по-прежнему работает, отключиться от сеанса экрана, набрав Ctrl +D.
  • Чтобы подключиться к существующей сессии экрана, запустите screen -rd.
  • Если вы выходите из оболочки внутри сеанса экрана, сеанс завершается.

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

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

  • Нет связанных вопросов^_^