start-stop-daemon がある場合
start-stop-daemon --start --quiet -u username -g usergroup --exec command ...
systemd スタイルの init スクリプトの場合は非常に簡単です。 [Service] セクションに User=を追加するだけです。
CentOS 7 で qbittorrent-nox に使用する init スクリプトは次のとおりです。
[Unit]
Description=qbittorrent torrent server
[Service]
User=<username>
ExecStart=/usr/bin/qbittorrent-nox
Restart=on-abort
[Install]
WantedBy=multi-user.target
RHEL システムでは、/etc/rc.d/init.d/functions
スクリプトは、必要なものと同様のものを提供することを目的としています。 init スクリプトの先頭でそれをソースすると、すべての機能が利用可能になります。
これを支援するために提供される特定の関数は daemon
です .これを使用してデーモンのようなプログラムを開始する場合、簡単な使用方法は次のとおりです:
daemon --user=username command
それがあなたが必要とするものに対してあまりにも手荒すぎるなら、 runuser
があります (man runuser
を参照) 詳細については;バージョンによっては -u
が必要な場合があります ユーザー名の前):
/sbin/runuser username -s /bin/bash -c "command(s) to run as user username"
sudo の代わりに 、試してみてください
su - username command
私の経験では、sudo RHEL システムでは常に利用できるとは限りませんが、su suだからです は coreutils パッケージの一部ですが、sudo sudo パッケージにあります。