mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-19 12:06:15 +02:00
users for snapclient and snapserver daemon
This commit is contained in:
parent
88cf84aa50
commit
0f2359c971
11 changed files with 64 additions and 22 deletions
|
@ -101,7 +101,7 @@ else
|
|||
install:
|
||||
$(MAKE) adduser
|
||||
$(MAKE) installfiles
|
||||
install -g audio -o snapcast -d /var/run/$(BIN)
|
||||
install -g audio -o snapclient -d /var/run/$(BIN)
|
||||
|
||||
@if [[ `systemctl` =~ -\.mount ]]; then \
|
||||
$(MAKE) installsystemd; \
|
||||
|
@ -135,8 +135,8 @@ installsysv:
|
|||
/etc/init.d/$(BIN) start; \
|
||||
|
||||
adduser:
|
||||
@if ! getent passwd snapcast >/dev/null; then \
|
||||
adduser --quiet --ingroup audio --system --no-create-home --home /var/lib/snapcast snapcast; \
|
||||
@if ! getent passwd snapclient >/dev/null; then \
|
||||
adduser --quiet --ingroup audio --system --no-create-home --home /var/lib/snapclient snapclient; \
|
||||
fi; \
|
||||
|
||||
ifeq ($(TARGET), MACOS)
|
||||
|
@ -184,5 +184,5 @@ uninstallsystemd:
|
|||
systemctl daemon-reload; \
|
||||
|
||||
deluser:
|
||||
@deluser --quiet --system snapcast > /dev/null || true
|
||||
@deluser --quiet --system snapclient > /dev/null || true
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ do_start()
|
|||
PIDDIR=$(dirname "$PIDFILE")
|
||||
if [ ! -d "$PIDDIR" ]; then
|
||||
mkdir -m 0755 $PIDDIR
|
||||
chown snapcast:audio $PIDDIR
|
||||
chown snapclient:audio $PIDDIR
|
||||
fi
|
||||
|
||||
# Return
|
||||
|
|
|
@ -7,9 +7,9 @@ ACTION="$1"
|
|||
VERSION="$2"
|
||||
|
||||
if [ "$ACTION" = "configure" ]; then
|
||||
# add the snapcast user
|
||||
if ! getent passwd snapcast >/dev/null; then
|
||||
adduser --quiet --ingroup audio --system --no-create-home snapcast
|
||||
# add the snapclient user
|
||||
if ! getent passwd snapclient >/dev/null; then
|
||||
adduser --quiet --ingroup audio --system --no-create-home snapclient
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
set -e
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
# clean up all statoverrides that belonged to snapcast, so the
|
||||
# snapcast system user can be removed cleanly
|
||||
for i in $(dpkg-statoverride --list | awk '/^snapcast / {print $4}'); do
|
||||
# clean up all statoverrides that belonged to snapclient, so the
|
||||
# snapclient system user can be removed cleanly
|
||||
for i in $(dpkg-statoverride --list | awk '/^snapclient / {print $4}'); do
|
||||
if dpkg-statoverride --list --quiet "$i" >/dev/null; then
|
||||
dpkg-statoverride --force --quiet --remove "$i"
|
||||
fi
|
||||
done
|
||||
|
||||
deluser --quiet --system snapcast > /dev/null || true
|
||||
deluser --quiet --system snapclient > /dev/null || true
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
|
|
@ -160,7 +160,10 @@ int main (int argc, char **argv)
|
|||
if (daemonOption.isSet())
|
||||
{
|
||||
#ifdef HAS_DAEMON
|
||||
daemonize("snapcast", "audio", "/var/run/snapclient/pid." + cpt::to_string(instance));
|
||||
string pidFile = "/var/run/snapclient/pid";
|
||||
if (instance != 1)
|
||||
pidFile += "." + cpt::to_string(instance);
|
||||
daemonize("snapclient", "audio", pidFile);
|
||||
if (processPriority < -20)
|
||||
processPriority = -20;
|
||||
else if (processPriority > 19)
|
||||
|
|
|
@ -111,7 +111,7 @@ else
|
|||
install:
|
||||
$(MAKE) adduser
|
||||
$(MAKE) installfiles
|
||||
install -g audio -o snapcast -d /var/run/$(BIN)
|
||||
install -g nogroup -o snapserver -d /var/run/$(BIN)
|
||||
|
||||
@if [[ `systemctl` =~ -\.mount ]]; then \
|
||||
$(MAKE) installsystemd; \
|
||||
|
@ -149,8 +149,8 @@ installbsd:
|
|||
cp debian/$(BIN).bsd /usr/local/etc/rc.d/$(BIN); \
|
||||
|
||||
adduser:
|
||||
@if ! getent passwd snapcast >/dev/null; then \
|
||||
adduser --quiet --ingroup audio --system --no-create-home --home /var/lib/snapcast snapcast; \
|
||||
@if ! getent passwd snapserver >/dev/null; then \
|
||||
adduser --quiet --ingroup nogroup --system --no-create-home --home /var/lib/snapserver snapserver; \
|
||||
fi; \
|
||||
|
||||
|
||||
|
@ -208,5 +208,5 @@ uninstallsystemd:
|
|||
systemctl daemon-reload; \
|
||||
|
||||
deluser:
|
||||
@deluser --quiet --system snapcast > /dev/null || true
|
||||
@deluser --quiet --system snapserver > /dev/null || true
|
||||
|
||||
|
|
|
@ -32,9 +32,9 @@ Config::Config()
|
|||
{
|
||||
string dir;
|
||||
if (getenv("HOME") == NULL)
|
||||
dir = "/var/lib/snapcast/";
|
||||
dir = "/var/lib/snapserver/";
|
||||
else
|
||||
dir = getenv("HOME") + string("/.config/snapcast/");
|
||||
dir = getenv("HOME") + string("/.config/snapserver/");
|
||||
int status = mkdirRecursive(dir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
|
||||
if ((status != 0) && (errno != EEXIST))
|
||||
throw SnapException("failed to create settings directory: \"" + dir + "\": " + cpt::to_string(errno));
|
||||
|
|
|
@ -45,12 +45,18 @@ fi
|
|||
#
|
||||
do_start()
|
||||
{
|
||||
PIDDIR=$(dirname "$PIDFILE")
|
||||
if [ ! -d "$PIDDIR" ]; then
|
||||
mkdir -m 0755 $PIDDIR
|
||||
chown snapserver:nogroup $PIDDIR
|
||||
fi
|
||||
|
||||
# Return
|
||||
# 0 if daemon has been started
|
||||
# 1 if daemon was already running
|
||||
# 2 if daemon could not be started
|
||||
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --chuid snapcast --test > /dev/null || return 1
|
||||
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --chuid snapcast -- $SNAPSERVER_OPTS || return 2
|
||||
start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" --test > /dev/null || return 1
|
||||
start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" -- $SNAPSERVER_OPTS || return 2
|
||||
# Add code here, if necessary, that waits for the process to be ready
|
||||
# to handle requests from services started subsequently which depend
|
||||
# on this one. As a last resort, sleep for some time.
|
||||
|
|
16
server/debian/snapserver.postinst
Normal file
16
server/debian/snapserver.postinst
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
umask 0022
|
||||
ACTION="$1"
|
||||
VERSION="$2"
|
||||
|
||||
if [ "$ACTION" = "configure" ]; then
|
||||
# add the snapserver user
|
||||
if ! getent passwd snapserver >/dev/null; then
|
||||
adduser --quiet --ingroup nogroup --system --no-create-home snapserver
|
||||
fi
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
17
server/debian/snapserver.postrm
Normal file
17
server/debian/snapserver.postrm
Normal file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
# clean up all statoverrides that belonged to snapserver, so the
|
||||
# snapserver system user can be removed cleanly
|
||||
for i in $(dpkg-statoverride --list | awk '/^snapserver / {print $4}'); do
|
||||
if dpkg-statoverride --list --quiet "$i" >/dev/null; then
|
||||
dpkg-statoverride --force --quiet --remove "$i"
|
||||
fi
|
||||
done
|
||||
|
||||
deluser --quiet --system snapserver > /dev/null || true
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -144,7 +144,7 @@ int main(int argc, char* argv[])
|
|||
if (daemonOption.isSet())
|
||||
{
|
||||
#ifdef HAS_DAEMON
|
||||
daemonize("snapcast", "audio", "/var/run/snapserver/pid");
|
||||
daemonize("snapserver", "nogroup", "/var/run/snapserver/pid");
|
||||
if (processPriority < -20)
|
||||
processPriority = -20;
|
||||
else if (processPriority > 19)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue