vlc
別のユーザーとして実行するには、次を使用します。
#!/bin/sh
su user -c 'vlc -vvv bigbuck.mp4 --sout "#rtp{dst=99.195.203.99,port=8090,sdp=rtsp://99.195.203.99:8091/test.sdp}" &
グラフィックインターフェイスが必要ない場合は、次のcvlc
代わりに使用することを検討してくださいvlc
。
#!/bin/sh
su user -c 'cvlc -vvv bigbuck.mp4 --sout "#rtp{dst=99.195.203.99,port=8090,sdp=rtsp://99.195.203.99:8091/test.sdp}" &
討論
su - user
コマンドラインで実行すると、ユーザーのアカウントでシェルが開きます。その後、そのシェルに対話形式で入力できます。su
を使用してシェルスクリプトを作成するときの秘-c
theは、コマンドがユーザーとして実行されるようにオプションを使用することです。
考慮してください:
#!/bin/sh
su - user
vlc -vvv bigbuck.mp4 --sout '#rtp{dst=99.195.203.99,port=8090,sdp=rtsp://99.195.203.99:8091/test.sdp}' &
このコマンドsu - user
は、ユーザーのアカウントでログインシェルを開きます。そのシェルが終了した後にのみvlc
コマンドが実行されます。これはあなたが望むものではなく、それが-c
オプションが必要な理由です。
文書化
-c
オプションはするsu
には文書化されていますman su
。
-c, --command COMMAND
Specify a command that will be invoked by the shell using its -c.
The executed command will have no controlling terminal. This option
cannot be used to execute interractive programs which need a
controlling TTY.