systemd: Use PermissionsStartOnly instead of running sudo
Use the PermissionsStartOnly systemd option to apply the permission related configurations only to the start command. This allows us to stop using "sudo" for ExecStartPre and ExecStopPost hooks and drop the "requiretty" /etc/sudoers hack from Scylla's RPM. Tested-by: Takuya ASADA <syuu@scylladb.com> Message-Id: <1466407587-31734-1-git-send-email-penberg@scylladb.com>
This commit is contained in:
5
dist/common/systemd/scylla-server.service.in
vendored
5
dist/common/systemd/scylla-server.service.in
vendored
@@ -2,6 +2,7 @@
|
||||
Description=Scylla Server
|
||||
|
||||
[Service]
|
||||
PermissionsStartOnly=true
|
||||
Type=notify
|
||||
LimitMEMLOCK=infinity
|
||||
LimitNOFILE=200000
|
||||
@@ -10,9 +11,9 @@ LimitNPROC=8096
|
||||
EnvironmentFile=@@SYSCONFDIR@@/scylla-server
|
||||
EnvironmentFile=/etc/scylla.d/*.conf
|
||||
WorkingDirectory=$SCYLLA_HOME
|
||||
ExecStartPre=/usr/bin/sudo /usr/lib/scylla/scylla_prepare
|
||||
ExecStartPre=/usr/lib/scylla/scylla_prepare
|
||||
ExecStart=/usr/bin/scylla $SCYLLA_ARGS $SEASTAR_IO $DEV_MODE $CPUSET
|
||||
ExecStopPost=/usr/bin/sudo /usr/lib/scylla/scylla_stop
|
||||
ExecStopPost=/usr/lib/scylla/scylla_stop
|
||||
TimeoutStartSec=900
|
||||
KillMode=process
|
||||
Restart=on-abnormal
|
||||
|
||||
5
dist/redhat/scylla.spec.in
vendored
5
dist/redhat/scylla.spec.in
vendored
@@ -104,11 +104,6 @@ cp -P dist/common/sbin/* $RPM_BUILD_ROOT%{_sbindir}/
|
||||
%pre server
|
||||
/usr/sbin/groupadd scylla 2> /dev/null || :
|
||||
/usr/sbin/useradd -g scylla -s /sbin/nologin -r -d %{_sharedstatedir}/scylla scylla 2> /dev/null || :
|
||||
%if 0%{?rhel}
|
||||
sed -e "s/Defaults requiretty/#Defaults requiretty/" /etc/sudoers > /tmp/sudoers
|
||||
cp /tmp/sudoers /etc/sudoers
|
||||
rm /tmp/sudoers
|
||||
%endif
|
||||
|
||||
%post server
|
||||
# Upgrade coredump settings
|
||||
|
||||
Reference in New Issue
Block a user