Подтвердить что ты не робот

Как получить список программ, работающих с nohup

Я обращаюсь к серверу, на котором работает CentOS (дистрибутив Linux) с SSH-соединением. Поскольку я не всегда могу войти в систему, я использую "nohup [command] &" для запуска моих программ.

Я не мог найти, как получить список всех программ, которые я начал использовать nohup. "Рабочие места" работают только до выхода из системы. После этого, если я снова вернусь, команда jobs ничего мне не покажет, но я могу видеть в своих файлах журнала, что мои программы все еще запущены.

Есть ли способ получить список всех программ, которые я начал использовать "nohup"?

4b9b3361

Ответ 1

Когда я начал с $ nohup storm dev-zookeper,

МЕТОД 1:, используя jobs,

[email protected]:/home/vmfest# jobs -l
[1]+ 11129 Running                 nohup ~/bin/storm/bin/storm dev-zookeeper &

METHOD2: с помощью команды ps.

$ ps xw
PID  TTY      STAT   TIME COMMAND
1031 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
10582 ?        S      0:01 [kworker/0:0]
10826 ?        Sl     0:18 java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ?        Ss     0:00 sshd: vmfest [priv] 

столбец TTY с ? = > nohup запущенными программами.

Описание

  • TTY column = терминал, связанный с процессом
  • STAT column = состояние процесса
    • S = прерывистый сон (ожидание завершения события)
    • l = многопоточность (с использованием CLONE_THREAD, например NPTL pthreads)

Ссылка

$ man ps #, затем выполните поиск /PROCESS STATE CODES

Ответ 2

Вместо nohup вы должны использовать screen. Он достигает такого же результата - ваши команды работают "отсоединены". Тем не менее, вы можете возобновить сеансы экрана и вернуться в свой "скрытый" терминал и увидеть недавний прогресс внутри этого терминала.

screen имеет много вариантов. Чаще всего я их использую:

Чтобы начать сеанс первого сеанса или взять на себя последний отсоединенный:

screen -Rd 

Отключиться от текущего сеанса: Ctrl+A Ctrl+D

Вы также можете запустить несколько экранов - прочитайте документы.

Ответ 3

Если у вас есть стандартное перенаправление вывода на "nohup.out", просто посмотрите, кто использует этот файл

lsof | grep nohup.out

Ответ 4

Вы не можете точно получить список команд, запущенных с помощью nohup, но вы можете увидеть их вместе с другими процессами, используя команду ps x. Команды, начинающиеся с nohup, будут иметь знак вопроса в столбце TTY.

Ответ 5

Вы также можете просто использовать верхнюю команду, и ваш идентификатор пользователя укажет запущенные задания и их время.

$ top

(это покажет все текущие задания)

$ top -U [user ID]

(Это будет показывать задания, специфичные для идентификатора пользователя)