<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
<span style="font-size: 6.97357px">Sorry for the badly formatted emails, I'll use a different provider that</span><div style="font-size: 6.97357px"><span style="font-size: 6.97357px">actually allows sending plain-text emails next time. I could only notice</span></div><div style="font-size: 6.97357px"><span style="font-size: 6.97357px">after it was sent.<br /></span></div><div style="font-size: 6.97357px"><span style="font-size: 6.97357px"><br /></span></div><div>Yes, I meant it in terms of foreground vs background. For example, not </div><div><span style="font-size: 5.64859px">specifying --scope just pushes it into a service, while with scope, while</span></div><div><span style="font-size: 5.64859px">the process executed is inside the scope unit, the systemd-run process is</span></div><div><span style="font-size: 5.64859px">connected to the terminal (without the use of -t) and running in the </span></div><div><span style="font-size: 5.64859px">foreground of the shell. I am not sure why things are different. I also</span></div><div><span style="font-size: 5.64859px">notice the difference is that in case of --scope, the service manager is</span></div><div><span style="font-size: 5.64859px">not really the parent process, and it's just that systemd-run creates a </span></div><div><span style="font-size: 5.64859px">transient scope and places the process inside it, which is ok, but not sure</span></div><div><span style="font-size: 5.64859px">why it is different than running it as a service, or even running the process</span></div><div><span style="font-size: 5.64859px">in the scope unit as a child of the service manager. I guess I don't really</span></div><div><span style="font-size: 5.64859px">understand the purpose of scope units properly, which is why this might be </span></div><div><span style="font-size: 5.64859px">confusing (and this probably relates to how tmux could have properly moved </span></div><div><span style="font-size: 5.64859px">itself out of the session scope by creating a new one transparently making</span></div><div><span style="font-size: 5.64859px">a bus call to systemd). I would appreciate a little explanation on what</span></div><div><span style="font-size: 5.64859px">I'm getting wrong and how it is supposed to work.</span></div><div><span style="font-size: 5.64859px"><br /></span></div>5. Feb 2018 19:29 by <a href="mailto:lennart@poettering.net" target="_blank" rel="noopener noreferrer">lennart@poettering.net</a>:<br /><br /><blockquote class="tutanota_quote" style="border-left: 1px solid #93A3B8; padding-left: 10px; margin-left: 5px;">On Fr, 02.02.18 19:00, worz (<a href="mailto:worz@tuta.io" target="_blank" rel="noopener noreferrer">worz@tuta.io</a>) wrote:<br /><blockquote>Hello, I was wondering why systemd-run --scope needs to be<br />synchronous, it would be nice if someone could explain what happens<br />under the hood, and what prevents it from just putting the process<br />in the scope, and maybe just call the Abandon() method on the slice<br />object's org.freedesktop.systemd1.Scope interface, when for example<br />it is used in combination with --user, the scope is under<br />user@1000.service, so it should be cleaned up as soon as the service<br />manager goes away? Note that there's not a specific usecase to cover<br />here, I am just interested in knowing why it isn't the other way.</blockquote><br />Hmm, I am not sure what you precisely mean by "synchronous" in this<br />context?<br /><br />Is this about the bus calls being issued synchronously? We do that so<br />that at the time the user-specified command is executed we know for<br />sure that the resource limits and other things are in effect on it. If<br />we'd asynchronously register the scope and would already execute the<br />user's command, then these resource limits would only be applied<br />asynchronously, i.e. at some later point too, which is generally not<br />what is intended.<br /><br />Or are you using the word "synchronous" in the context of foreground<br />vs. background? I.e. you want your process to be forked into the<br />background? That's actually done by default by systemd-run when you<br />don't use "--scope", where the executed process is moved into into the<br />background as a service.</blockquote><blockquote class="tutanota_quote" style="border-left: 1px solid #93A3B8; padding-left: 10px; margin-left: 5px;"><br /></blockquote><blockquote class="tutanota_quote" style="border-left: 1px solid #93A3B8; padding-left: 10px; margin-left: 5px;">Note that "systemd-run --scope" is little more than an<br />execve()-wrapper: if you want the whole thing to be running as a<br />shell managed background process, then suffix the line in "&" like you<br />would normally do too, when you don't use "systemd-run"...<br /><br />But then again, I am not sure what you actually are looking for so<br />maybe my answers above completely miss the point...<br /><br />Lennart<br /><br />-- <br />Lennart Poettering, Red Hat</blockquote>  </body>
</html>