Jika Anda memiliki start-stop-daemon
start-stop-daemon --start --quiet -u username -g usergroup --exec command ...
Untuk skrip init gaya systemd sangat mudah. Anda cukup menambahkan User=di bagian [Layanan].
Ini skrip init yang saya gunakan untuk qbittorrent-nox di CentOS 7:
[Unit]
Description=qbittorrent torrent server
[Service]
User=<username>
ExecStart=/usr/bin/qbittorrent-nox
Restart=on-abort
[Install]
WantedBy=multi-user.target
Pada sistem RHEL, /etc/rc.d/init.d/functions
skrip dimaksudkan untuk memberikan yang serupa dengan yang Anda inginkan. Jika Anda sumbernya di bagian atas skrip init Anda, semua fungsinya akan tersedia.
Fungsi spesifik yang disediakan untuk membantu hal ini adalah daemon
. Jika Anda bermaksud menggunakannya untuk memulai program mirip daemon, penggunaan sederhananya adalah:
daemon --user=username command
Jika itu terlalu berat untuk apa yang Anda butuhkan, ada runuser
(lihat man runuser
untuk info lengkap; beberapa versi mungkin memerlukan -u
sebelum nama pengguna):
/sbin/runuser username -s /bin/bash -c "command(s) to run as user username"
Alih-alih sudo , coba
su - username command
Dalam pengalaman saya, sudo tidak selalu tersedia di sistem RHEL, tetapi su adalah, karena su adalah bagian dari paket coreutils sedangkan sudo ada di dalam paket sudo.