Судя по вашему вопросу, похоже, что Nautilus открывает окно рабочего стола, на которое нельзя щелкнуть и внутри которого нет ничего.
Попробуйте запустить gsettings set org.gnome.desktop.background show-desktop-icons false
в своем терминале и посмотрите, отображается ли этот пустой экран.
Это не отвечает вашему желанию сделать Ranger основным файловым менеджером, хотя этот вопрос AskUbuntu кажется уместным.
systemd-run
может запланировать запуск команды в определенное время, до тех пор, пока:
См. еще ниже для постоянной перезагрузки -.
Простой пример дляsystemd-run
:
# generate an arbitrary timestamp, in seconds-since-the-epoch
timestamp=$(date -d 'now + 42 seconds' +%s)
systemd-run --on-calendar "$(date -d @"$timestamp" +'%F %T')" \
--timer-property=AccuracySec=1us \
touch /tmp/done
Важные части, чтобы заставить systemd-run
использовать секунды -, поскольку -временная метка эпохи -:
--on-calendar
и systemd-run
понимает. Вы можете ввести или преобразовать отметку времени самостоятельно, если результат будет в формате , который OnCalendar понимает . Текущая документация для OnCalendar указывает, что он напрямую поддерживает ввод в секундах -, начиная с -метки времени эпохи -. Эта поддержка '@seconds' была добавлена в systemd версии 234(ищите на этой странице файлsrc/basic/calendarspec.c
)в commit d80e5b7 . Ваша версия systemd может предшествовать этому изменению; например:
С новой -достаточной версией systemd вы можете использовать этот вызов:
timestamp=$(date -d 'now + 42 seconds' +%s)
systemd-run --on-calendar "@${timestamp}" \
--timer-property=AccuracySec=1us \
touch /tmp/done
Я также показал свойство таймера -AccuracySec , которое по умолчанию равно 1 минуте,и значение которого вы должны настроить на основе документации:
To optimize power consumption, make sure to set this value as high as possible and as low as necessary.
Я не проверял это, но есть также опция таймера, называемая WakeSystem
, которая:
cause the system to resume from suspend, should it be suspended and if the system supports this. Note that this option will only make sure the system resumes on the appropriate times, it will not take care of suspending it again after any work that is to be done is finished.
Вы бы интегрировали его в вышеприведенное вот так:
timestamp=$(date -d 'now + 42 seconds' +%s)
systemd-run --on-calendar "$(date -d @"$timestamp" +'%F %T')" \
--timer-property=AccuracySec=1us \
--timer-property=WakeSystem=true \
touch /tmp/done
Чтобы попросить systemd выполнить команду в определенное время таким образом, чтобы это сохранялось после перезагрузки и не зависело от какого-либо конкретного сеанса входа в систему, вам необходимо разместить таймер и сервисный модуль. файлы под /etc/systemd/system/
. /etc/systemd/system — это место, где хранится локальная конфигурация для systemd.
Пример файла таймера::
[Timer]
AccuracySec=1us
[Unit]
Description=2020-01-22 09:50:00 timer
[Timer]
OnCalendar=2020-01-22 09:50:00
и пример файла службы будет:
[Unit]
Description=my 2020-01-22 09:50:00 service
[Service]
ExecStart=
ExecStart=@/usr/bin/bash "/usr/bin/bash" "-c" "echo 2020-01-22 09:50:00 timer and service ran > /tmp/done"
Затем вы должны сообщить systemd о файлах, перезагрузив его:
systemctl daemon-reload
... и включение таймера:
systemctl enable foo.timer
... и затем запуск таймера:
systemctl start foo.timer
Вы можете периодически удалять просроченные таймеры и служебные единицы из /etc/systemd/system по истечении их времени.