<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Oct 2, 2018 at 9:25 PM Andrei Borzenkov <<a href="mailto:arvidjaar@gmail.com">arvidjaar@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">02.10.2018 19:52, Mantas Mikulėnas пишет:<br>
> On Tue, Oct 2, 2018 at 4:44 PM Thomas Blume <<a href="mailto:Thomas.Blume@suse.com" target="_blank">Thomas.Blume@suse.com</a>> wrote:<br>
> <br>
>> Hi,<br>
>><br>
>> there is some large software like SAP or Oracle out there that need to<br>
>> be started/stopped via special users.<br>
>><br>
> <br>
> What exactly do you mean by "via special users", and why is that? Anything<br>
> that a "special user" can start, a .service unit can start directly too.<br>
> (Perhaps not the nicest-looking .service unit, but that is besides the<br>
> point.)<br>
> <br>
<br>
SAP installation is done under dedicated (normally non-system) user; a<br>
lot of configuration is defined in ~/.profile (or ~/.login depending on<br>
user shell) and similar shell startup files; without sourcing these<br>
files it is basically impossible to get working environment. So<br>
traditionally SAP processes were started by "su - sidadm -c startsap" or<br>
similar - the main objective is having login shell that sources startup<br>
files.<br>
<br>
Please do not start telling that it can be done differently. Until SAP<br>
implements *SUPPORTED* different solution (startup files are maintained<br>
by SAP installer automatically among other things) using login shell is<br>
the only supported way to use SAP. </blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
It may be possible to use something like "sh -l -c ..." but it still<br>
must be explicitly supported by vendor. I do not know if SAP supports this.<br></blockquote><div><br></div><div>If the main objective is having a login shell, then it sounds that all methods of obtaining that should be equally supported. Explicit 'sh -l' starts a login shell perfectly well and actually seems more reliable than relying on 'su' to start one.</div><div><br></div><div>So, sure, you can do ExecStart=/bin/sh -l -c "..." or even manually source those startup files from within the -c. Hopefully they didn't say they need an *interactive* login shell, do they?</div><div><br></div><div>If 'su' is strictly required, you could even use ExecStart=/bin/su if you made sure that the su PAM stack skips pam_systemd in this situation.</div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Mantas Mikulėnas</div></div></div>