Вы можете получить идентификатор процесса задания из jobs -l
, так что вы не должны охотиться через ps
выход, чтобы найти работу. Вот почему вы пытались избежать ps
?
jobs -l | sed 's/^\[[0-9]*\][^0-9]*\([0-9][0-9]*\)[^0-9].*/\1/' | xargs ps up
будет работать в bash и zsh.
Если вы используете zsh, то zsh/parameters
модуль предоставляет $jobstates
переменную массива. Например:
% echo $jobstates[1] running:-:14975=running
Это может быть легче разобрать пид с. И если вы работаете в системе, /proc
тогда временная метка в директории proc сообщит вам, когда процесс был запущен.
$ ls -ld /proc/$$