systemd: How to start as different user?
Michał Piotrowski
mkkp4x4 at gmail.com
Sun Jun 19 23:29:50 UTC 2011
2011/6/20 Reindl Harald <h.reindl at thelounge.net>:
> how to start a program as service with a defined user?
> one example below and there are many progams which can
> run headless with a restricted user - if find no option
> to do this in systemd
You should read docs
User=, Group=
Sets the Unix user resp. group the processes are executed as.
Takes a single user resp. group name or ID as argument. If no group is
set the default group of the user is chosen.
http://0pointer.de/public/systemd-man/systemd.exec.html
>
> BTW:
> the name "sytemd" makes your life hard googling for informations
> since google seems to think the "d" is a typo
>
> #!/bin/bash
> ### BEGIN INIT INFO
> # Provides: ffserver
> # Default-Start:
> # Default-Stop: 0 1 2 3 4 6
> # Short-Description: streaming server
> # Description: streaming server
> ### END INIT INFO
> # chkconfig: 345 84 84
>
> # Service-Name
> SERVICE="ffserver"
> USER_ACCOUNT="ffserver"
>
> # Source function library.
> . /etc/init.d/functions
>
>
> [ -f /usr/bin/$SERVICE ] || exit 0
>
> # Source config
> if [ -f /etc/sysconfig/$SERVICE ] ; then
> . /etc/sysconfig/$SERVICE
> else
> OPTIONS=""
> fi
>
> RETVAL=0
>
> start() {
> if [ -n "`/sbin/pidof $SERVICE`" ]; then
> RETVAL=0
> action $"Starte $SERVICE" /bin/false
> return $RETVAL
> fi
> daemon --user $USER_ACCOUNT $SERVICE $OPTIONS > /dev/null 2> /dev/null
> RETVAL=$?
> PROCESS_ID=`/sbin/pidof $SERVICE`
> if [ "$PROCESS_ID" != "" ]; then
> PROCESS_ID="(PID: $PROCESS_ID)"
> fi
> action $"Starte $SERVICE $PROCESS_ID" /bin/true
> if [ -n "`/sbin/pidof $SERVICE`" ]; then
> touch /var/lock/subsys/$SERVICE
> return $RETVAL
> else
> RETVAL=127
> return $RETVAL
> fi
> }
>
> stop() {
> if [ -z "`/sbin/pidof $SERVICE`" ]; then
> RETVAL=0
> action $"Beende $SERVICE" /bin/false
> return $RETVAL
> fi
> PROCESS_ID=`/sbin/pidof $SERVICE`
> if [ "$PROCESS_ID" != "" ]; then
> PROCESS_ID="(PID: $PROCESS_ID)"
> fi
> killproc $SERVICE
> RETVAL=$?
> echo "Beende $SERVICE $PROCESS_ID"
> [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$SERVICE
> return $RETVAL
> }
>
> rhstatus() {
> status $SERVICE
> }
>
> restart() {
> stop
> start
> }
>
> case "$1" in
> start)
> start
> ;;
> stop)
> stop
> ;;
> status)
> rhstatus
> ;;
> restart|reload)
> restart
> ;;
> condrestart)
> [ -f /var/lock/subsys/$SERVICE ] && restart || :
> ;;
> *)
> echo $"Usage: $0 {start|stop|status|restart|condrestart}"
> exit 1
> esac
>
> exit $?
>
>
>
> --
> devel mailing list
> devel at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/devel
>
--
Best regards,
Michal
http://eventhorizon.pl/
More information about the devel
mailing list