起動時に長期実行カスタムスクリプトを起動したいと思います。スクリプトは特定のユーザー名で実行する必要があります。これまで、正常にscreenコマンドを使用し、カスタムスクリプトからユーザーに切り替えました。しかし、後でそのユーザーとしてログインして画面を復元できるように、そのユーザーの下でscreenコマンドを実行したいと思います。
このコマンドは、コンソールからrootとして実行すると機能しますが、起動スクリプトでは1行では機能しません。
su -c "screen -S セッション名 -d -m /path/cot/bash/script" ユーザー名
答え1
GNU/Linux から起動するときは、次のものを使用しないでくださいsu
。PAM / dbusによって異なります。、まだ使用できない可能性があります)、しかしrunuser
:
runuser username -l -c "screen -S sessionname -d -m /path/to/bash/script"
runuser
構文は、後でusernameを使用する場合と同じですsu
。
答え2
わかりました。 -lフラグを使用する必要があります。
su -l -c "screen -S sessionname -d -m /path/to/bash/script" username