Si tiene start-stop-daemon
start-stop-daemon --start --quiet -u username -g usergroup --exec command ...
Para scripts de inicio de estilo systemd es realmente fácil. Simplemente agregue un Usuario =en la sección [Servicio].
Aquí hay un script de inicio que uso para qbittorrent-nox en CentOS 7:
[Unit]
Description=qbittorrent torrent server
[Service]
User=<username>
ExecStart=/usr/bin/qbittorrent-nox
Restart=on-abort
[Install]
WantedBy=multi-user.target
En los sistemas RHEL, el /etc/rc.d/init.d/functions
script está destinado a proporcionar similar a lo que desea. Si obtiene eso en la parte superior de su secuencia de comandos de inicio, todas sus funciones estarán disponibles.
La función específica provista para ayudar con esto es daemon
. Si tiene la intención de usarlo para iniciar un programa similar a un demonio, un uso simple sería:
daemon --user=username command
Si eso es demasiado complicado para lo que necesitas, hay runuser
(ver man runuser
para información completa; algunas versiones pueden necesitar -u
antes del nombre de usuario):
/sbin/runuser username -s /bin/bash -c "command(s) to run as user username"
En lugar de sudo , prueba
su - username command
En mi experiencia, sudo no siempre está disponible en los sistemas RHEL, pero su es, porque su es parte del paquete coreutils mientras que sudo está en el paquete sudo.