Estoy desarrollando una herramienta, shprofile , que te ayuda a administrar un conjunto de perfiles de shell . Cada perfil define un conjunto de scripts que se pueden cargar en cualquier momento dentro de la sesión de shell actual.
Para resolver su problema, puede definir 2 perfiles que contengan sus 2 versiones de .profile
y .vimrc
. Luego puede cambiar entre ellos llamandoshprofile
:
$ shprofile profileName
Para obtener más información, consulte el proyecto asociado Github .
Просто установите сетевой менеджер -отлично работал у меня на Rasbian.
Network Manager позволяет NetworkManager -ждать -online.service. Так как интерфейсы не готовы при запуске Knockd, это дает сети время, чтобы активировать интерфейс.
@Bigon имеет правильную общую идею.
Основная проблема заключается в том, что network-online.target
обычно не включается в дерево зависимостей для systemd. Когда systemd обрабатывает строку After=network-online.target
в вашем модуле, он определяет, что может игнорировать ее, потому что network-online.target
не произойдет.
Вам нужен модуль, который втягивает сеть -online.target в дерево зависимостей в тот момент, когда сеть находится ::барабанная дробь ::в сети. Многие дистрибутивы предоставляют такой модуль. Сетевые менеджеры также часто предоставляют эту функциональность.
Поскольку я не знаю ваш дистрибутив, мне трудно понять, какой модуль вам нужно включить. И хотя переключение на networkmanager , скорее всего, решит вашу проблему, networkmanager также внесет много других изменений в работу вашей системы, возможно, конфликтующих с существующей конфигурацией.
Вам нужна директива Wants=
, так как network-online.target
не включается в цепочку зависимостей по умолчанию (см. systemd.special (7 )справочная страница ).
Вы также можете включитьifupdown-wait-online.service
(systemctl enable ifupdown -wait -online.service ), если вы не используете NetworkManager