시스템 서비스의 개인화된 인스턴스

시스템 서비스의 개인화된 인스턴스

네 명의 서로 다른 사용자를 위해 Debian Buster 컴퓨터에서 네 개의 VNC 서버 인스턴스를 실행하고 있습니다.

Apache Guacamole 덕분에 사용자는 웹 브라우저를 통해 원격 컴퓨터에서 동시에 각자의 계정에 로그인할 수 있습니다.

각 VNC 인스턴스에는 자체 유닛 파일이 있습니다. 그것들은 다음과 같습니다:

[Unit]
Description=a wrapper to launch an X server for VNC
After=syslog.target network.target

[Service]
Type=forking
User=user2
Group=user2
WorkingDirectory=/home/user2

ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -rfbport 5902 -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

사용자, 사용자의 홈 디렉터리 및 VNC 서버의 포트가 명시적으로 지정됩니다. Guacamole의 사용자 매핑 파일에 있는 데이터와 일치해야 합니다.

    <connection name="User1">
        <protocol>vnc</protocol>
        <param name="hostname">localhost</param>
        <param name="port">5902</param>       
        <param name="password">user2's vnc password</param>                  
    </connection>
</authorize

시작 시 한 번에 하나의 VNC 인스턴스만 시작하는 매우 간단한 스크립트가 있습니다.

그래서 이것은 나에게 효과가 있습니다. 나는 그것이 매우 우아하다고 생각하지 않습니다. systemd가 여러 사용자를 지원하도록 하는 더 좋은 방법이 있습니까? 무엇이 될 것인가?[이메일 보호됨]템플릿 파일이 사용자 이름과 포트 번호를 처리하는 것처럼 보일 수 있습니까?

관련 정보