Как выполнить команду «Keep NumLock always on» в Linux Mint 19 Cinnamon при каждой перезагрузке/повторном входе в систему?

При установке

DEFAULT_VERSIONS=python=3.5 python2=2.7 python3=3.5

в /etc/make.conf необходимо перестроить порты, использующие версию Python по умолчанию.

-121--89082-

Монтировать каталог узла в виде тома данных

Кроме создания тома с помощью флага -v можно монтировать каталог с узла демона Docker в контейнер.

 $ docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py

Эта команда монтирует каталог хоста/src/webapp в контейнер по адресу/opt/webapp. Если путь/opt/webapp уже существует внутри изображения контейнера, установка/src/webapp накладывается, но не удаляет уже существующее содержимое. После удаления подключения содержимое снова становится доступным. Это соответствует ожидаемому поведению команды mount.

container-dir всегда должен быть абсолютным путем, таким как/src/docs. Host-dir может быть абсолютным путем или значением имени. Если для host-dir указан абсолютный путь, Docker привязывает к указанному пути. Если ввести имя, Docker создаст именованный том с таким именем.

Значение имени должно начинаться с буквенно-цифрового символа, а затем a-z0-9, _ (подчеркивание),. (точка) или - (дефис). Абсолютный путь начинается с/( косая черта).

Например, для значения host-dir можно задать значение/foo или foo. Если указано значение/foo, Docker создает привязку. При вводе спецификации foo Docker создает именованный объем.

Если вы используете Docker Machine в Mac или Windows, демон Docker имеет только ограниченный доступ к файловой системе OS X или Windows. Docker Machine пытается автоматически предоставить общий доступ к папке/Users (OS X) или C :\Users (Windows). Таким образом, можно монтировать файлы или каталоги в OS X с помощью.

 docker run -v /Users/<path>:/<container path> ...

В Windows установите каталоги с помощью:

 docker run -v /c/Users/<path>:/<container path> ...`

Все остальные пути поступают из файловой системы виртуальной машины. Например, если используется VirtureBox или другая папка, доступная для общего доступа, необходимо выполнить дополнительную работу. В случае VirtureBox необходимо сделать папку хоста доступной в качестве общей папки в VirtureBox. Затем его можно смонтировать с помощью флага Docker -v.

Установка каталога хоста может быть полезна для тестирования. Например, можно монтировать исходный код внутри контейнера. Затем измените исходный код и просмотрите его влияние на приложение в режиме реального времени. Каталог на узле должен быть указан как абсолютный путь, и если каталог не существует, Docker автоматически создаст его для вас. Это автоматическое создание пути узла устарело.

Тома Docker по умолчанию монтируются в режиме чтения-записи, но можно также установить их только для чтения.

    $ docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py

Здесь мы смонтировали тот же каталог/src/webapp, но мы добавили параметр ro, чтобы указать, что подключение должно быть только для чтения.

Из-за ограничений функции монтирования перемещение подкаталогов в исходном каталоге хоста может предоставить доступ из контейнера к файловой системе хоста. Для этого требуется, чтобы злонамеренный пользователь имел доступ к узлу и подключенному каталогу.

Note: The host directory is, by its nature, host-dependent. For this reason, you can’t mount a host directory from Dockerfile because built images should be portable. A host directory wouldn’t be available on all potential hosts.
-121--184488-

С awk (GNU awk для многомерных массивов)

gawk -F, '
    { line[NR] = $0; count[$1]++; found[$1][NR] = 1}
    END {
        for (id in count)
            if (count[id] > 1)
                for (nr in found[id]) 
                    print line[nr]
    }
' file

Порядок вывода может быть не таким, как у входного файла.

27
23.10.2019, 21:08
3 ответа

Как указано в другом месте, использование rc-local.serviceпод systemdстановится умеренно нечистым.

  1. Теоретически возможно, что ваш дистрибутив не поддерживает эту функцию. (Я думаю, что это не распространено, т.е. потому что отключение той же опции сборки также удаляет команды poweroff/ reboot, которые используют многие люди ).
  2. Семантика не совсем ясна. Systemd определяет rc-local.serviceодним способом, но Debian предоставляет вставку -в файле, которая изменяет как минимум одну важную настройку.

rc-local.serviceчасто может работать хорошо. Если вас беспокоит вышеизложенное, все, что вам нужно сделать, это сделать свою собственную копию! Вот волшебство:

# /etc/systemd/system/my-startup.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/libexec/my-startup-script

[Install]
WantedBy=multi-user.target

Я не думаю, что вам нужно понимать каждую деталь[ *], но здесь вам нужно знать две вещи.

  1. Вам необходимо включить это с помощью systemctl enable my-startup.service.

  2. Если ваш скрипт зависит от какой-либо другой службы, включая network-online.target, вы должны объявить об этом. Например. добавьте раздел [Unit]со строками Wants=network-online.targetи After=network-online.target.

    Вам не нужно беспокоиться о зависимости от служб «ранней загрузки» -, в частности, служб, которые уже заказаны ранее basic.target. Такие службы, как my-startup.service, автоматически заказываются после basic.target, если они не устанавливают DefaultDependencies=no.

    Если вы не уверены, является ли одна из ваших зависимостей службой «ранней загрузки», можно составить список служб, заказанных до basic.target, запустив systemctl list-dependencies --after basic.target. (Обратите внимание, что это --after, а не--before).

Есть некоторые соображения, которые, как мне кажется, также применимы к пре -systemdrc.local:

  1. Вы должны убедиться, что ваши команды не конфликтуют с другой программой, которая пытается управлять тем же самым.
  2. Лучше не запускать долго -работающие программы, также известные как демоны из rc.local.

[ *] Я использовал Type=oneshot+ RemainAfterExit=yes, потому что это имеет смысл для большинства -кадровых сценариев.Он формализует, что вы запустите ряд команд, что my-startupбудет отображаться как «активный» после их завершения, и что вы не будете запускать демон.

29
20.08.2021, 11:11

Забудьте о rc.local.

Как я говорил о CentOS 7 и о Debian 8 и об Ubuntu 15:

Вы используете операционную систему systemd+Linux. /etc/rc.localпредставляет собой механизм двойной обратной совместимости в systemd, потому что это механизм обратной совместимости для механизма, который сам был механизмом совместимости в клоне van Smoorenburg System 5 rc.

Использование /etc/rc.localможет привести к ужасным ошибкам. Люди были удивлены тем фактом, что systemd не запускается rc.localсовсем не так, в том же месте начальной загрузки, как они привыкли. (Или ошибочно ожидали :На самом деле он не запускался последним в старой системе, как до сих пор указывается в руководстве OpenBSD. )Другие были удивлены тем фактом, что то, что они установили в rc.local, ожидая старых способов ведения дел, затем полностью отменяется подобными новым udevправилам, NetworkManager, systemd-logind, systemd-resolved., или различные "наборы".

Как показано в «Почему `init 0 `приводит к «избыточным аргументам» при установке Arch? », некоторые операционные системы уже предоставляют systemd без обратного функции совместимости , такие как генератор systemd-rc-local-generator.Хотя Debian по-прежнему сохраняет функции обратной совместимости , Arch Linux собирает systemd с их отключением . Таким образом, в Arch и подобных операционных системах ожидается, что/etc/rc.localбудет полностью проигнорировано .

Забудьте о rc.local. Это не тот путь. У вас есть операционная система systemd+Linux. Так что создайте правильный сервисный модуль systemd и не начинайте с точки, которая находится на расстоянии двух уровней обратной совместимости. (В Ubuntu и Fedora он удалялся три раза, а клон van Smoorenburg System 5 rc, последовавший за rc.local, сам дважды заменялся более десяти лет. назад, сначала upstart, а затем systemd.)

Также помните первое правило перехода на systemd .

Это даже не новая идея, относящаяся к systemd. В системах van Smoorenburg rcи Upstart нужно было создать правильный сценарий van Smoorenburg rcили файл задания Upstart, а не использовать rc.local. Даже в руководстве FreeBSD отмечается, что в настоящее время вместо использования /etc/rc.localсоздается правильный сценарий Mewburn rc. Мьюберн rcбыл представлен NetBSD 1.5 в 2000 году.

/etc/rc.localотносится ко времени седьмого издания Unix и ранее. Он был заменен /etc/inittabи уровнем запуска -, основанным rcв AT&T Unix System 3 (, с немного другим /etc/inittabв AT&T Unix System 5)в 1983 году . Даже , что теперь уже история.

Создайте надлежащие собственные определения сервисов для вашей системы управления сервисами, будь то пакет сервисов для набора инструментов nosh service-managerи system-control, скрипт /etc/rc.d/для Mewburn rc, файл сервисного модуля для systemd, файл задания для Upstart, служебный каталог для runit/s6/daemontools -encore или даже /etc/init.d/скрипт для van Smoorenburg rc.

В systemd такой администратор -добавил файлы служебных модулей, которые идут в /etc/systemd/system/обычно (или /usr/local/lib/systemd/system/редко ).С диспетчером услуг nosh /var/local/sv/является обычным местом для пакетов локальных услуг. Mewburn rcво FreeBSD использует /usr/local/etc/rc.d/. Упакованные файлы сервисных модулей и сервисные пакеты, если вы их создаете, находятся в разных местах.

Дополнительная литература

19
20.08.2021, 11:11

Краткое изложениеhttps://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd

Создать /etc/systemd/system/rc -local.service:

# /etc/systemd/system/rc-local.service
[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

Тогда:

sudo touch /etc/rc.local
sudo chmod +x /etc/rc.local
sudo systemctl enable rc-local

Проверить с помощью:

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
6
20.08.2021, 11:11

Теги

Похожие вопросы