特定のユーザーとして起動時にアプリケーションを実行する方法は?


17

特定のユーザーアカウントで起動時にアプリケーションを起動する方法はありますか?

たとえばa_small_app、ユーザーアカウントbob(グループ内bobsgroup)で実行したいと思います。何かを追加し/etc/init.dますか?

注:ユーザーがログインし後ではなく、コンピューターが起動したときにアプリケーションを起動する必要があります。


ログインウィンドウでログインする前にアプリを起動しますか?
マーティンオーウェンズ-doctormo

@マーティン:まあ、それは本当に重要ではありません...私はここで例としてApacheを使用しています。いつ始まりますか?
ネイサンオスマン

回答:


13

起動システムに依存しない方法。これは/etc/rc.local/etc/init.d/...スクリプト、Upstart構成ファイル、およびおそらくsystemd構成でも使用できます。

sudo -u oli /full/path/to/application

このコマンドはrootユーザーとして実行sudoされ、「oli」ユーザーにドロップダウンします。目的に合わせてユーザーとコマンドを明らかに変更してください。

これを行うには、少なくとも12の方法があります...しかし、私の経験では、それらはすべて実質的にほぼ同一です。次に、そのsetuidスタンザを使用した新興企業の例を示します。

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

setuid oli
respawn

exec /full/path/to/application


私が取得sudo: unknown group: 1004
ThorSummoner

また、突く:アップスタートについての行を更新する時間。
ムル

@muruします。ただし、グループは必要ありません。sudoは、指定されたユーザーのデフォルトグループを使用します
オリ

それから編集してください。誰かそれを改善して以来、このコマンドは3年間間違っていました!:D
ムル

1

Ubuntu 14.10では、最初の答えはもう機能しないようです。

これは私がそこで行う方法です(/etc/rc.localに入れてください)

su <username> - -c "<command>"

ログインシェルが必要な場合、同等のものはsudo -i -u ...です。
ムル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.