Как запустить службу в Fedora на основе WSL -?

Как вы уже поняли, это можно сделать с помощьюtweak-tool:

enter image description here

и действительно, изменения теперь выполняются в базе данных dconf, поэтому, если вы предпочитаете делать это в терминале, вам нужно переключить dynamic-workspacesна falseи установить желаемый num-workspaces, поэтому либо

dconf write /org/gnome/mutter/dynamic-workspaces false
dconf write /org/gnome/desktop/wm/preferences/num-workspaces 4

или

gsettings set org.gnome.mutter dynamic-workspaces false
gsettings set org.gnome.desktop.wm.preferences num-workspaces 4

Изменение этих клавиш также можно выполнить с помощью dconf-editor.

1
18.03.2021, 12:30
2 ответа

Вы не упомянули, как вы его установили, но я предполагаю что-то вроде инструкций здесь . Я никогда особо не работал с Fedora, поэтому решил загрузить ее быстрый chroot-экземпляр с помощью Fedora -Container -Base , используя комбинацию приведенных выше инструкций вместе с некоторыми конкретная информация о chroot .

Мне кажется, что Fedora «все -в» на systemd, возможно, больше, чем большинство других дистрибутивов, которые я видел. Например, Ubuntu по-прежнему позволит вам использовать команду service, но, как вы видели, Fedora все равно перенаправляет ее на systemd.В Fedora нет даже сценария инициализации для ssh. -Это все systemdслужебные файлы.

Это сообщение в блоге , похоже, подтверждает это, используя Fedora в качестве примера. В нем есть ряд хороших предложений для большинства других служб :

.
  • Просмотрите файлы Docker для служб, которые вы хотите запустить, чтобы узнать, как они запускают и останавливают службу
  • В любом случае используйте контейнеры Docker или podman.

Хотя это и хорошие предложения, на мой взгляд, они не так полезны для sshd.

Итак, я добавлю свое собственное предложение. --Просмотрите systemdфайлы, чтобы увидеть шаги, которые они предпринимают для настройки и запуска (и остановки/перезапуска )службы.

Для sshdв Fedora служба systemd(usr/lib/systemd/system/sshd.service)имеет зависимости, которые определяют, были ли сгенерированы ключи хоста, и делают это, если они отсутствуют (, например. сразу после установки ).(Думаю, --я не могу претендовать на звание гуру в чтении systemdслужб.)

Поэтому для начала вам нужно будет выполнить этот шаг вручную (, если вы еще этого не сделали):

/usr/libexec/openssh/sshd-keygen ecdsa
/usr/libexec/openssh/sshd-keygen rsa
/usr/libexec/openssh/sshd-keygen ed25519

Личная рекомендация/дополнительный совет. --Измените порт sshd на какой-нибудь другой, кроме 22. Установите Windows OpenSSH Server на хосте Windows, что позволит вам легко проксировать любой экземпляр WSL на хосте.

Затем просто запустите службу вручную, используя ту же команду, что и systemdиспользует (см. вышеупомянутый файл .service):

/usr/sbin/sshd

У меня это работает в среде chrootFedora 33.

Вы можете использовать supervisord для управления службами вместо systemdили другого PID 1 init. Я использовал его в контейнерах Docker, и он хорошо работал для запуска/остановки/перезапуска простых сервисов. Вам придется накатить свой собственный конфиг, но это просто. И, наконец, приятно иметь дополнительные возможности управления и восстановления в случае неожиданной остановки службы.

Еще одно замечание, так как вы работаете с sshdпод WSL. --Имейте в виду, что экземпляры WSL2 всегда используют псевдо -NAT в виртуальном сетевом адаптере за хостом Windows. Это означает, чтоssh(или доступ к любой службе в рамках WSL2 )с другого компьютера в сети потребует дополнительных усилий -См. мои ответы здесь и здесь по этой теме.

1
18.03.2021, 23:46

посмотри здесь:

https://gist.github.com/djfdyuruiry/6720faa3f9fc59bfdf6284ee1f41f950

Приветствие х

0
20.03.2021, 14:15

Теги

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