Я бы предложил использовать флаг -s
, чтобы получить доступное для анализа время запуска системы. А затем используйте дату
и вычитание.
Продолжайте делать это в цикле и сравнивайте с записью. Время записи, конечно, нужно сохранить в файл.
(Файл записи должен быть инициализирован. echo 0> record
)
Пока этот сценарий продолжает работать, все могут просто прочитать файл записи, чтобы узнать, что это за текущая запись.
#!/bin/sh
format_time ()
{
t=$1
days=$(($t / 86400))
t=$(($t - 86400*$days))
hours=$(($t / 3600))
t=$(($t - 3600*$hours))
minutes=$(($t / 60))
t=$(($t - 60*$minutes))
echo "$days days $hours hours $minutes minutes $t seconds"
}
main ()
{
# Old record
record="$(cat record)"
# When the system started.
boot="$(date -d "$(uptime -s)" '+%s')"
while true; do
# You could also calculate the uptime before the loop and just
# increment it, but that will rely on the script running 24/7.
now="$(date '+%s')"
current_uptime="$(($now - $boot))"
# Set and save the record when it gets beaten
if [ "$current_uptime" -gt "$record" ]; then
record="$current_uptime"
echo "$record" > record
fi
# Status should be printed _after_ potentially having set
# a new record:
clear
echo "Current uptime: $(format_time "$current_uptime")"
echo "Record uptime: $(format_time "$record")"
# Don't waste system resources for silly things.
sleep 1
done
}
main
У меня была такая же проблема "Screen 1 deleted" на Debian testing с ядром 4.9. Я решил проблему, добавив следующие строки в /etc/bumblebee/xorg.conf.nvidia
, как описано здесь https://wiki.debian.org/Bumblebee:
Section "Screen"
Identifier "Default Screen"
Device "DiscreteNvidia"
EndSection
В конце концов, попробуйте также установить BusID вручную в том же файле, найдя его с помощью lspci | egrep 'VGA|3D'
.