スクリプトで非ルートとして画面を起動するにはどうすればいいですか

スクリプトで非ルートとして画面を起動するにはどうすればいいですか

私は Minecraft を実行しており、 から自動的に起動しています/etc/rc.local。 それが実行され/home/kent-server/mc/spigot.sh、その中に がありますscreen -dms minecraft Java -jar -Xmx5120M -Xms5120M spigot.jar

コード自体は機能しますが、 ではS-rootない画面が起動しますS-kent-server。これは、通常のユーザーでログインすると、実行中の画面が表示されないという問題があります。ただし、 コマンドを使用してルートに切り替えると、su問題なく表示されます。

答え1

提案されたようにドラヴ・スローン次のように使用できますsu:

su -l kent-server -c 'cd /home/kent-server/mc/ && screen -d -m -S Minecraft Java -jar -Xmx5120M -Xms5120M spigot.jar'

次のようなものを使用しても同様の結果を得ることができますsudo

sudo -u kent-server /home/kent-server/mc/spigot.sh

関連情報