Как получить список программ, работающих с nohup
Я обращаюсь к серверу, на котором работает CentOS (дистрибутив Linux) с SSH-соединением.
Поскольку я не всегда могу войти в систему, я использую "nohup [command] &" для запуска моих программ.
Я не мог найти, как получить список всех программ, которые я начал использовать nohup.
"Рабочие места" работают только до выхода из системы. После этого, если я снова вернусь, команда jobs ничего мне не покажет, но я могу видеть в своих файлах журнала, что мои программы все еще запущены.
Есть ли способ получить список всех программ, которые я начал использовать "nohup"?
Ответы
Ответ 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]
(Это будет показывать задания, специфичные для идентификатора пользователя)