tail
позволяет пропустить заданное количество строк:
find "/dir/folder" name "*.dat" -exec tail +2 {} + >> "/dir/folder/table.txt"
Запустив systemctl cat keyboard-setup.service
, вы можете увидеть его определение:
# /lib/systemd/system/keyboard-setup.service
[Unit]
Description=Set the console keyboard layout
DefaultDependencies=no
Before=local-fs-pre.target
Wants=local-fs-pre.target
ConditionPathExists=/bin/setupcon
[Service]
Type=oneshot
ExecStart=/lib/console-setup/keyboard-setup.sh
RemainAfterExit=yes
[Install]
WantedBy=sysinit.target
Таким образом, он работает /lib/console-setup/keyboard-setup.sh
, но только если /bin/setupcon
существует.
/lib/console-setup/keyboard-setup.sh
тоже довольно просто:
#!/bin/sh
if \
[ -x /etc/console-setup/cached_setup_keyboard.sh ] \
&& /etc/console-setup/cached_setup_keyboard.sh
then
:
else
if [ -f /etc/default/locale ]; then
# In order to permit auto-detection of the charmap when
# console-setup-mini operates without configuration file.
. /etc/default/locale
export LANG
fi
setupcon -k
fi
Значение:
/etc/console-setup/cached_setup_keyboard.sh
существует и работает без ошибок, этот скрипт ничего не делает, кроме запуска этого скрипта. setupcon -k
, но если /etc/default/locale
существует, она считывается и сначала экспортируется переменная LANG. По крайней мере, в моей системе /etc/console-setup/cached_setup_keyboard.sh
существует и выглядит так:
#!/bin/sh
if [ -f /run/console-setup/keymap_loaded ]; then
rm /run/console-setup/keymap_loaded
exit 0
fi
kbd_mode '-u' < '/dev/tty1'
kbd_mode '-u' < '/dev/tty2'
kbd_mode '-u' < '/dev/tty3'
kbd_mode '-u' < '/dev/tty4'
kbd_mode '-u' < '/dev/tty5'
kbd_mode '-u' < '/dev/tty6'
loadkeys '/etc/console-setup/cached_UTF-8_del.kmap.gz' > '/dev/null'
Значение:
/run/console-setup/keymap_loaded
существует (, указывающий, что раскладка клавиатуры консоли уже была загружена в ранней -загрузочной initramfs ), файл очищается, и сценарий больше ничего не делает, выходя без ошибки. Исходя из этого, вы можете попробовать:
/etc/console-setup/cached_setup_keyboard.sh
и /etc/default/locale
на наличие повреждений или содержания чего-либо -занимает больше времени, чем обычно /etc/console-setup/cached_setup_keyboard.sh
не существует, вы можете попробовать создать аналогичный моему примеру выше (он может быть создан с помощью какого-либо инструмента настройки клавиатуры с графическим интерфейсом, и используемые команды могут быть быстрее, чемsetupcon -k
)/etc/console-setup/cached_setup_keyboard.sh
существует, вы можете попытаться временно сделать его неисполняемым -,загрузка системы и тестирование клавиатуры, чтобы увидеть, можно ли использовать раскладку и быстрее ли путь выполнения через setupcon -k
, чем текущий путь KEYMAP=y
в /etc/initramfs-tools/initramfs.conf
и запустите update-initramfs -u
и посмотрите, ускорит ли это работу, загрузив раскладку в initramfs и заставив keyboard-setup.service
быть по существу обойденным Лучше всего установить ограничение времени ожидания для службы, чтобы контролировать время, которое она потребляет при запуске. Вы можете сделать это двумя способами:
SERVICETOFIX="keyboard-setup.service"
sudo mkdir -p "/etc/systemd/system/$SERVICETOFIX.d"
sudo echo -e "[Service]\nTimeoutStartSec=10" | tee "/etc/systemd/system/$SERVICETOFIX.d/reduce-timeout.conf"
Метод 2 :Лично я предпочитаю этот метод :Сначала запустите sudo systemctl edit keyboard-setup.service
, а затем в редакторе добавьте ниже, а затем сохраните и выйдите из редактора.
[Service]
TimeoutStartSec=10