
これはすでに回答されているかもしれませんが、もし回答されていたとしても、私の Google 検索ではそれを見つけるのに十分ではありません。私は TightVNC サーバーを実行しており、複数のユーザーが接続できるようにしたいと考えています。init.d を使用した従来のランレベルではこれが実行できることはわかりましたが、systemd では実行できませんでした。
私は、ポートと実行を制御したいので、ユーザーが実行する責任があるユーザー固有のスクリプトを用意するのではなく、さまざまなユーザーに対してサービスを開始するための引数を持つシステム サービスを作成しようとしています。
以下のように考えましたが、if ステートメントが機能しません。このような単一のサービスを持つ方法はありますか? それとも、ユーザーごとに複製する必要がありますか?
ありがとう。
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
if [ 1 == %i]; then
User = user1
Group = user1
WorkingDirectory=/home/user1
PIDFile = /home/user1/.vnc/%H:%i.pid
elif [2 == %i]; then
User = user2
Group = user2
WorkingDirectory=/home/user2
PIDFile = /home/user2/.vnc/%H:%i.pid
fi
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target