Я имею, находят его наконец, поскольку это - простое понятие./dev/sdb имеет 3000 ГБ, где fidsk не будет поддерживать, потому что он будет поддерживать жесткий диск только на 2000 ГБ. Вместо этого fdisk мы должны использовать разделенный.
Некоторые init-системы, включая systemd, предоставляют возможность убить все процессы, принадлежащие службе. Обычно сервис запускает один процесс, который создает больше процессов с помощью форкинга, и эти процессы также могут это сделать. Все такие процессы обычно считаются частью службы. В systemd это делается с помощью cgroups .
В systemd все процессы, принадлежащие службе, убиваются, когда служба останавливается по умолчанию. Очевидно, что SSH-сервер является частью сервиса. Когда вы подключаетесь к серверу, SSH-сервер обычно вилки и новый процесс обрабатывает вашу SSH-сессию. С помощью вилки из сеанса SSH или его дочерних процессов запускаются другие процессы на стороне сервера, включая ваш экран или tmux .
Поведение по умолчанию может быть изменено с помощью директивы KillMode
. Проект AFAIK не включает файлы .service
и поэтому они различаются в зависимости от дистрибутива. Обычно есть два способа включить SSH в вашей системе. Первый - классический ssh.service
, который поддерживает длительное прослушивание SSH демоном в сети. Другой способ заключается в активации сокета, обрабатываемого сокетом ssh.socket
, который, в свою очередь, запускает sshd@.service
, который работает только в течение одного сеанса SSH.
Если ваши процессы будут убиты в конце сеанса, возможно, что вы используете активацию сокета, и он будет убит системойd, когда она заметит, что процесс сеанса SSH завершился. В этом случае есть два решения. Первое заключается в том, чтобы избежать использования активации сокетов, используя ssh.service
вместо ssh.socket
. Другое решение - установить KillMode=процесс
в разделе Service
службы ssh@.service
.
Настройка KillMode=process
также может быть полезна при использовании классического ssh.service
, так как она позволяет избежать убийства процесса сеанса SSH или процессов screen или tmux, когда сервер останавливается или перезагружается.
Этот ответ, по-видимому, приобрел определенную популярность. В то время как он работал для операционной системы, может случиться, что он не будет работать для кого-то в будущем из-за разработки или конфигурации systemd-logind. Пожалуйста, ознакомьтесь с документацией по сеансам логина, если вы испытываете поведение, отличное от описания в этом ответе.
Используете ли вы SystemD с активацией сокета для SSH?
Если это так, есть известный вопрос с этим . Согласно системам системы Systemd, это на самом деле является функцией - Systemd убивает все процессы, порожденные сеансом, когда сеанс завершается. (Я вижу, что это полезно, но в экране GNU
, или TMUX
, Case, вы определенно не хотите Хотите, чтобы ☺ ни в большинстве других случаев Куда, конечно, пользователи могут запускать фоновые процессы, конечно.)
Если так, попробовать переключение из SSHD.Socket
на SSHD.Service
.
Другим решением, не требующим перехода от sshd.socket
к sshd.service
, является запуск tmux
сервера как systemd service [0]. Таким образом, сервер tmux
уже запущен, когда вы подключаетесь к нему по SSH, а не порожден командой tmux
в SSH, и поэтому не будет убит.
[0] https://wiki.archlinux.org/index.php/tmux#Autostart_with_systemd
У меня была такая же проблема с tmux и screen в Ubuntu 16.04 (kde neon). Когда сеанс ssh был отключен, экран / tmux был завершен.
Короче говоря, systemd изменила настройку по умолчанию на killuserprocess=yes, поэтому после выхода из сеанса ssh каждый созданный им процесс будет завершен.
Простое исправление (после нескольких часов попыток) запустить screen/tmux с помощью этой команды
Для экрана
systemd-run --scope --user screen
для Tmux
systemd-run --scope --user tmux
Вы можете создать псевдоним, чтобы упростить задачу
alias tmux= "systemd-run --scope --user tmux"
Я нашел следующее для работы изhttps://pastebin.com/2cifCXGk
(ответа, скопированного из этой ссылки ).
Создайте файл /etc/systemd/system/tmux@.service с содержимым:
[Unit]
Description=Start tmux in detached session
Documentation=man:tmux(1)
[Service]
Type=forking
User=%I
ExecStart=/usr/bin/tmux new-session -s %u -d
ExecStop=/usr/bin/tmux kill-session -t %u
[Install]
WantedBy=multi-user.target
Затем включите службу для каждого пользователя:
sudo systemctl enable tmux@${USER}.service
sudo systemctl start tmux@${USER}.service
sudo systemctl daemon-reload
Кроме того, вы можете поместить этот файл в каталог systemd/User (без User=%I
), например ~/.config/systemd/user/tmux.service
. Таким образом, служба tmux будет запускаться при входе в систему, если только вы не включите автоматический запуск -пользовательских экземпляров systemd.