Existe, mais uma vez, uma incompatibilidade entre o conceito do systemd de sessões de login do espaço do usuário e como um programa como o mosh funciona. (Isso está longe de ser o único conflito. Houve problemas com o tmux, screen, emacs em seu novo modo de daemon, inundado, e outros. No entanto, eles não estão no escopo desta resposta.)
A noção do systemd é que um plug-in do PAM comunica a configuração e a desmontagem das sessões de login em logind
, que por sua vez lida com o início e o fim do gerenciamento de serviço por usuário. e finalmente logoff.
Isso entra em vigor com a sessão SSH que você está usando para iniciar mosh-server
. Mas essa sessão é de curta duração e termina após mosh-server
estar em funcionamento. mosh-server
, além disso, não é um programa de login e não tem nenhuma relação com o PAM, então o plug-in do bodge PAM não funciona. A consequência é que logind
vê apenas uma sessão SSH de muito curta duração e, como resultado, inicia e, em seguida, interrompe rapidamente o seu subsistema de gerenciamento de serviços por usuário.
A única maneira que o systemd tem para lidar com isso é dizer ao logind
que o seu gerenciamento de serviços por usuário "permanece" após o logoff final. Você faz isso com o subcomando enable-linger
do comando loginctl
.
Isso não se aplica apenas a mosh, além disso. Qualquer sistema que envolva sessões SSH curtas, especialmente se envolver muitas delas, tem esse problema de logind
iniciar e parar o gerenciamento de serviços por usuário repetidamente.