osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/30094?usp=email )
Change subject: contrib/systemd: run as osmocom user ......................................................................
contrib/systemd: run as osmocom user
I have verified that with AmbientCapabilities=CAP_SYS_NICE, setting scheduling policy as described in the manual still works as expected.
Related: OS#4107 Change-Id: Ibb83c231231b39dc6732c0f375aeb3b21f3938ef --- M contrib/systemd/osmo-mgw.service A debian/postinst 2 files changed, 54 insertions(+), 0 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved
diff --git a/contrib/systemd/osmo-mgw.service b/contrib/systemd/osmo-mgw.service index 03f40ff..eaf84be 100644 --- a/contrib/systemd/osmo-mgw.service +++ b/contrib/systemd/osmo-mgw.service @@ -9,8 +9,11 @@ StateDirectory=osmocom WorkingDirectory=%S/osmocom Restart=always +User=osmocom +Group=osmocom ExecStart=/usr/bin/osmo-mgw -s -c /etc/osmocom/osmo-mgw.cfg RestartSec=2 +AmbientCapabilities=CAP_SYS_NICE # CPU scheduling policy: CPUSchedulingPolicy=rr # For real-time scheduling policies an integer between 1 (lowest priority) and 99 (highest priority): diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 0000000..be12373 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,38 @@ +#!/bin/sh -e +case "$1" in + configure) + # Create the osmocom group and user (if it doesn't exist yet) + if ! getent group osmocom >/dev/null; then + groupadd --system osmocom + fi + if ! getent passwd osmocom >/dev/null; then + useradd \ + --system \ + --gid osmocom \ + --home-dir /var/lib/osmocom \ + --shell /sbin/nologin \ + --comment "Open Source Mobile Communications" \ + osmocom + fi + + # Fix permissions of previous (root-owned) install (OS#4107) + if dpkg --compare-versions "$2" le "1.13.0"; then + if [ -e /etc/osmocom/osmo-mgw.cfg ]; then + chown -v osmocom:osmocom /etc/osmocom/osmo-mgw.cfg + chmod -v 0660 /etc/osmocom/osmo-mgw.cfg + fi + + if [ -d /etc/osmocom ]; then + chown -v root:osmocom /etc/osmocom + chmod -v 2775 /etc/osmocom + fi + + mkdir -p /var/lib/osmocom + chown -R -v osmocom:osmocom /var/lib/osmocom + fi + ;; +esac + +# dh_installdeb(1) will replace this with shell code automatically +# generated by other debhelper scripts. +#DEBHELPER#