То, что предложил Светлин Тончев, будет работать из коробки, только если OP использует Ubuntu, что здесь не так. Однако при запуске add-apt-repository добавленный источник будет зависеть от имени вашей ОС. Например, если вы перейдете в /etc/apt/sources.list.d/, вы можете найти файл с именем git-core-ppa-jessie.list (или аналогичный), содержащий следующие строки:
deb http : //ppa.launchpad.net/git-core/ppa/ubuntu jessie main
deb-src http://ppa.launchpad.net/git-core/ppa/ubuntu jessie main
Однако такого репозитория не существует, и поэтому OP получил 404.
Возможным решением этой конкретной проблемы было бы вручную отредактировать указанный выше файл и заменить jessie на xenial.
Запустите команду в фоновом режиме и каждую минуту опрашивайте истекшее время процессора:
npm test &
while sleep 1m
do
ps -o etime $!
done
Вы можете использоватьpv -t
:
npm test | pv -t
Или, чтобы избежать прохождения вывода npm
через pv
, используйте fd, который npm
не записывает в:
{ npm test 3>&1 >&4 4>&- | pv -t; } 4>&1
В соответствии с ответом l0b0:поместите задание в фоновый режим, но затем запустите занятый -цикл вокруг вопроса «он все еще работает?», выдавая по пути истекшие минуты:
#!/bin/sh
start=$(date +%s)
"$@" &
while ps -p $! > /dev/null
do
sleep 1
now=$(date +%s)
if [ $(( (now - start) % 60)) -eq 0 ]
then
printf "%d minutes have elapsed\n" $(( (now - start) / 60))
fi
done
Это может привести к тому, что другой процесс будет повторно использовать тот же PID, что и наш фоновый процесс, если наш процесс завершится и начнется этот другой процесс, пока мы спим.
Чтобы сообщать о прошедших минутах каждые 5 минут вместо каждой минуты, просто измените первые 60 на 300 .