Systemd Starts Killing Your Background Processes By Default (blog.fefe.de)
New submitter nautsch writes: systemd changed a default value in logind.conf to "yes", which will kill all your processes, when you log out... There is already a bug-report over at debian: Debian bug tracker.
The new change means "user sessions will be properly cleaned up after," according to the changelog, "but additional steps are necessary to allow intentionally long-running processes to survive logout. To effectively allow users to run long-term tasks even if they are logged out, lingering must be enabled for them."
The new change means "user sessions will be properly cleaned up after," according to the changelog, "but additional steps are necessary to allow intentionally long-running processes to survive logout. To effectively allow users to run long-term tasks even if they are logged out, lingering must be enabled for them."
In my mind if you want background processes to stay alive, you should explicitly state so, and not have the system make the assumption, even if it has been the convention that background processes do stay alive. To me it just seems a potential vector for a backdoor or something, I dunno >
Better feed it. :)
"user sessions will be properly and improperly cleaned up after..."
FTFY.
"National Security is the chief cause of national insecurity." - Celine's First Law
Yay! Awesome!
systemd is by far the stupidest thing to happen to Linux, ever... It's not that different from Java. "Oh, new clean shiny thing that is lean and mean!" Then they halfheartedly learn what the real world requires and half-ass it ever since.
Or you know use Slackware... it's the oldest Linux Distro and does not use systemd.
Do not look at laser with remaining good eye.
So, "screen" has always been a good way to ensure that processes don't get killed randomly by disconnections, logout or X crashes.
Then comes systemd and kills all your processes at logout, even when launched with screen.
Finally, then comes Poettering, explaining you that you're a moron if you expect to keep those processes running.
Seriously, the systemd devs make it really hard no to hate them.
You use old beater machines instead of virtual machines? God I remember when I did that... So much clutter due to holding on to old computer parts that I'd usually never end up using, but still keeping them "just in case". My last move was so much easier without packing up a garage partially filled with that shit to bring to the next house.
Fear not, people of Slashdot, because there is an option to maintain background processes, even after user disconnection.
But this option is not "on" by default. So, yeah, screen and tmux all of a sudden become useless, unless you fiddle with the knobs.
Seriously, now, fsck systemd: Slackware and OpenBSD for me from now on.
Even Mac OS X has the decency not to mess up your tmux sessions when suspending and restoring your session. Fsck systemd.
The right to offend is far more important than the right not to be offended. (Rowan Atkinson)
That systemd is able to kill the remaining processes on logout is not an issue. What is an issue is that it does this _by default_.
I gave up with the idea of an useful sig...
> A multi-user system shouldn't allow unpriviledged users from consuming resources indefinitely
You're an idiot.
If I log on and start vim and two weeks later I've still got that screen sesh up, I sure as fuck do not want my unpriviledged account to have its processes terminate.
Docking/shutdown makes sense. You've turned off that (conceptual) computation device. But that requires the end user to say they're done and shut down. Doing it automatically is incredibly fucking stupid.
Or Gentoo. systemd is optional on Gentoo.
The real "Libtards" are the Libertarians!
A multi-user system shouldn't allow unpriviledged users from consuming resources indefinitely
Crippling the service is not a good way to protect the server.
There are other ways to protect system from users to consume all the resources. Admin can and should setup the server the way it is protected from incompetent/malicious users.
If you make this protection by killing processes after logout, you are actually removing functionality from it. And for me, it's a step backward.
Wouldn't it be better to save state on logout and restore on login? This would provide the balance between saving system resources and allowing a user to start off where they left off. Of course applications would need to be aware of state saving. Is there already some sort of API for this?
Jumpstart the tartan drive.
So what you are saying that you not not expect BSD Unixes to let ill behaving processes to linger after you log out but that you also see this as good behaviour? Not sure that the developers of the various BSD Unixes agree with you there.
Myself, I expect that such processes gets killed. I also expect the default of this value to be set to "no" on the various server editions.
Because for most linux is not a desktop os, we use it one servers. I've had logged in screen sessions that date back to when machines were built. Systemd keep thinking that people want it for a desktop os, for their laptop etc. I've got literally thousands of physical boxes running linux that I deal with I've only got one linux laptop so the laptop scenario should never be the default for me, the systemd devs seem to keep thinking their linux laptops are the majority.
No sir I dont like it.
Isnt that for the ADMIN to decide?
Good-bye
> A multi-user system shouldn't allow unpriviledged users from consuming resources indefinitely.
man 5 limits.conf
In short, *nix has provided ways to do just that for literal decades.
This is indeed a weakness of pretty much all current Unix systems. It is slightly mitigated by having per-user limits on stuff, but basically if someone opens a screen session and runs yes the machines's CPU will generate as much heat as possible indefinitely. malloc() a few gigs of RAM for good measure.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
Again and again I've heard people like you suggest that Slackware is a replacement for a modern mainstream distro like Debian. Others suggest Gentoo.
Well, the reality is that neither is sufficient.
Slackware is, to put it politely, very primitive. While simplicity is a good thing, Slackware takes it to the point where it becomes a liability.
When using Debian, it's possible to get a full-featured desktop or server set up with very little effort, and this can be done quickly. Thanks to sensible defaults and a practical installer, manual configuration is kept to a minimum.
Slackware, on the other hand, requires far too much manual intervention just to get a minimally usable system set up. Maybe this isn't a problem for a hobbyist who tinkers with Linux on a weekend, but it is a problem for people who are seriously using Linux, especially in a business setting. They can't afford to waste time and effort on Slackware, especially if a distro like Debian manages to avoid such waste.
Gentoo really isn't much better. It's not as bad as Slackware, but Gentoo is still a niche distro, and its whole compilation strategy is wasteful for anyone but hobbyists.
At this point, sensible and experienced Debian users have realized that Debian systemd/GNU/Linux is a lost cause. They've moved to FreeBSD ages ago, or are in the process of doing so. If Slackware and Gentoo are the only viable non-systemd options left for those who want to use Linux, then Linux is just not suitable for use.
FreeBSD gives much of what Debian used to give: stability, reliability, trustworthiness, an excellent packaging system, a superb installer, sensible defaults, no systemd, and an environment that's perfect for both desktops and servers. In some ways FreeBSD is even better than Debian traditionally was: much of the FreeBSD code is released under truly free BSD family licenses, rather than the far more restrictive and less-free GPL family.
This story: Systemd Starts Killing Your Background Processes By Default
Previous story: Massive Backlash Building Over Windows 10 Upgrades
That's the best conjunction of two headlines that I've noticed in my many years here.
FWIW, I'm a happy PC-BSD user, not that this is a panacea by any means, but there does seem to be less of the "stupidity on a rampage" form of collateral damage.
I pay the price with a lot more "W?TF doesn't Firefox play this media type either?" and I find I have to page bounce to Chrome once or twice almost every day (my FF is plug-in central, my Chrome is naked install).
Unfortunately, I can't even brag that PC-BSD is a successful Poettering removal tool, as I still had to fight some nasty battles with PulseAudio due to rampant ecosystem taint in the package tree that PC-BSD doesn't have the resources to strip out (nor, sadly, does the entire *BSD Avenger collective). Get this, the GUI control I needed to mess with only appears if certain PulseAudio processes are active, but because of my debugging mode, those processes were timing out before I could visit all the places where I thought the GUI control might possibly show up (discoverability anti-pattern in anti-flagrante delicto).
Every large software ecosystem must eventually manage breakage. There are good ways to go about this, and there are bad ways to go about this, and then there are Poettering ways to go about this. It's the added ego problem that seems excessive.
> A multi-user system shouldn't allow
> unpriviledged users from consuming resources
> indefinitely.
Don't worry, Systemd-OS will implement process accounting, soon.
If I nohup a process then I want it to persist. Why invent something different when that still works fine?
It however have to be said that just because v230 of systemd have changed "#KillUserProcesses=no" into "KillUserProcesses=yes" in /etc/systemd/logind.conf does not mean that distributions will ship with this. v230 have just hit Debian testing so it will be quite a while before it hits Debian stable.
What about when I have a long running process I need to run and I don't want it to be stopped if I get disconnected from wifi? Or maybe I know it'll still be running when I have to go home?
The way it is now, if I just disconnect from ssh, they get killed. If i go out of my way to ensure they won't (e.g. start them in a screen session) then they aren't. How is the old way a problem?
Why does Google Maps on FreeBSD default to lite mode?
I was just using Google Maps, and it reminded me that on PC-BSD (both Chromium and FF) Google Maps only runs in Lite mode, despite having all the requirements.
You can fix this by spoofing your user agent string to an older browser version. As stated, PC-BSD rocks, but it's by no means a panacea (though no great fault of their own).
-1 Google web coders
Any Poettering haters out there who know someone who works at Google, please put the word out that this is not acceptable.
"it should rather be disabled .. by setting KillUserProcesses=no in /etc/systemd/logind.conf ." ref
Systemd is a pain.
aaaaaaa
You are exactly correct. Distros will have the final say in conf defaults. I don't see many holding onto the yes value for server branded versions of their distros, way too much breakage. For desktop and workstation, maybe, we will have to see. But seriously, this whole thing is a massive overreaction to a value that can be changed in a text editor in less than two seconds. But of course we all know that any systemd news instantly makes front page because of the massive knee jerk Slashdot has for systemd.
Who's bitching about debian? No one.
Who's bitching about systemd's insanity? A lot of people.
Who's concentrating on things hopefully working in debian stable? You.
No, it wouldn't be. First, if you will contemplate what is involved in saving state, you'll realize what an incredible challenge it would be to do so perfectly every time in every case.
For example, if I start a slow FTP session, how will the magic state saver cope? Remember, the remote server is not taking part in the state saving.
Second, had you done that, wouldn't you be a bit disappointed to find out 24 hours later that the file transfer has made no progress at all?
Screen, nohup, and friends exist explicitly to allow a terminal session to dettach and re-attach as needed. I use screen all the time, especially where a firewall might time out.
It's probably best for the system to work like it's always worked. If they want Potterix to work differently, they should put out a distro.
A multi-user system shouldn't allow unpriviledged users from consuming resources indefinitely. It's too easy to starve a system or resources. I think that's one of the reasons behind the isolation dockers provides in the first place. Shut down the container and everything gets cleaned up.
How does this have anything do with management of allocation of resources to users? Isn't an interactive session just as capable of "consuming resources indefinitely" as a running detached process?
If you wanted to stop or limit all of a users processes don't you have that same ability regardless of whether attached to a session or not? I don't understand the logic or benefit in changing a behavior that already requires a fairly specific expression of intent.
Apparently, according to some reports, this came about because Gnome can't properly kill off all your sub processes when you log out.
So, systemd to the rescue. Why is anyone using gnome again?!
So I log onto a server, start a all-night process, log off, and shut down my desktop it should mean that my process should also be killed? Or do I have to keep my desktop on all night and hope that the connection doesn't drop just to keep the process running?
Or sometimes I can log on to a system to start a long process which will send me a notification when it's done. Why should I stay logged in taking up resources just so that the process can stay running? It's better for the system for the process to be running in the background and me to be logged off. If I do things properly I set up my job to run at a lower priority but the OS is going to have a good scheduler to ensure that active users are given priority.
They are far too dirty to touch, let alone clean up.
Do that all you want on a desktop. On a server, perhaps nobody cares or perhaps the admin will kill your processes. Keep in mind, if you don't actually touch the pages your allocation only exists in theory. If you do, it'll get swapped out if you don't keep touching it periodically.
Once it becomes obvious you're burning resources for fun, the admin will either drop your ulimits down or terminate access.
I run a few systems where the user is expected to start simulations that may run for weeks. I don't need something to start mysteriously killing those processes off.
The functionality remains the same, even with the new systemd defaults. But instead of using "nohup /program/ &" you use "systemd-run --user -scope /program/".
So a slight change in syntax, not a big deal IMHO.
Give Devuan a spin. It is very much like Debian but without systemd.
You morons all sound like a bunch of Mac users.
Actually, if, on a Mac running OS X, you do nohup blahblahblah >/tmp/blahblahlog 2>&1 & in a Terminal window in a GUI session, and then log out and log back in again, blahblahblah will still be running (verified experimentally on an El Camino (virtual) machine just now).
(If it warns you that there's a process running in Terminal, and that logging out will kill it, tell it to close the Terminal window anyway; it's lying, the process will survive. I'm not sure what signal is getting sent, if any, but it ain't SIGKILL - perhaps it's SIGHUP, as nohup's purpose is to make the process ignore SIGHUP.
The Unix tradition has always been "you want your backgrounded processes to survive a logout, nohup them" - traditionally, when the tty driver saw that carrier dropped, it'd deliver SIGHUP, although I'm not sure all UN*Xes pseudo-terminal drivers deliver SIGHUP when the master side closes, that being the closest moral equivalent to carrier dropping; I think I've seen that not happen on OS X, but didn't dig through the pseudo-tty code in XNU enough to see why that wasn't happening or to determine whether that was intentional.)
My laptop is connected to the TV. I use it for playiong videos, audio, and various web videos. I don't want anything terminated unless I explicitly terminate it. So they're wrong even in the case of laptops.
How is the old way a problem?
That's systemd in a nutshell (and pulseaudio too). Replace well-known things that are not broken with something obscure and clunky that thinks it's smarter than you.
systemd, unity, iTunes, Windows 10... We live in a world where mediocre aspies decide how other people should use their computers because they work in large footprint organizations that have no competent dictators.
lucm, indeed.
This is why we tune the systems so that user joe doesn't bring down Susans apps too.
NEVER NEVER NEVER NEVER NEVER NEVER NEVER NEVER GIVE UP! "No limitations, no boundaries, there is no reason for them."
That systemd is able to kill the remaining processes on logout is not an issue. What is an issue is that it does this _by default_.
Why is that an issue? Even the old SysVinit distros did the same (albeit not very well). If you are thinking about the user wanting to run certain processes after logout, then that isn't a problem at all; just tell the system so. You do that by starting the process in its own scope with "systemd-run --user --scope `program` ". It really is that simple.
However, this really shouldn't be such a general problem: If/when we can change tmux and screen to use PAM or enable lingering, then I think we get the best of both worlds: Logging out would clean up properly, but the (relatively few) users who use screen/tmux on a PC would get the expected behaviour of those processes surviving. So I'm fine with reverting to the previous behaviour until a more fine-grained API (https://github.com/systemd/systemd/issues/3382) is available. Michael, WDYT?"
So because this idiot can't configure GNOME properly he decides that the entire world their servers needs to stop working properly.... and that screen/tmux should be reimplemented!?
"Wouldn't it be better to save state on logout and restore on login?"
Wouldn't it be better if you learn that for the computer to do things on my behalf it's not needed that I stay in front of the computer, that I don't even need to maintain an interactive session opened for that to happen?
This is anti-daemonic. Systemd is committing daemon genocide while you log out and turn your back on it.
Changes like this make me wonder if the systemd developers even use Linux beyond their local development workstations. This isn't just an inconvenient change, it breaks the expected and decades old behavior of how Unix machines work. This breaks ^Z/bg/disown, it breaks screen, it breaks nohup, etc. Yes, these things can be made to work still but, why do I need to jump through hoops to re-gain the functionality I've relied on for decades? If I'm not aware of this change, how would I even figure out why all my screen sessions died when I logged out? What benefits am I gaining by having this be the default behavior?
But please.
WHY. THE. FUCK. break decades of well-established Unix conventions? Why the actual fuck?
I hate the arrogance of the systemd folks who think they are doing everything better. Even Darwin respects Unix conventions more than systemd. And yes, they scrapped sysvinit too. And yes, I still prefer sysvinit.
Same as it ever was.
But we have also always been able to identify and route around said phenomena.
Linux has been very successful and it's always true of highly successful projects/companies that they attract certain types after awhile.
One of many systemd bugs is that it sometimes leaves user "systemd" processes running even after a user logs out. Over time this can add up to many lingering user "systemd" processes. I've seen dozens of simultaneous, buggy user "systemd" processes lingering fter users have logged in and out a few times. The processes have to be manually killed. Rather than fixing the problem they've apparently "worked around it" by kill all login processes instead. This did not occur pre-systemd.
A multi-user system shouldn't allow unpriviledged users from consuming resources indefinitely.
The Unix Time-Sharing System has allowed that since Day One.
The question then is whether we should start treating that as a deficiency to be fixed, and in what ways it should be fixed, e.g. "should even nohupped jobs be killed?"
One of the best things on linux is screen. I can start a long calculation, compile, transcode, whatever, log out, drive home, and pick up where I left off. Let the computer work while I drive: there's no reason for it to be stuck in traffic, too.
"So a slight change in syntax, not a big deal IMHO."
No, the slight change in syntax is not a big deal. That you think changing behaviour for the sake of it is not a big deal, *is* the big deal.
In the movie Fahrenheit-451 you're the dude gleeful that all the clutter is being cleared away.
You're forgetting that all the mac users climbed aboard what they thought was the UNIX bus a little over a decade ago.
A thousand times this. Once again Poettering with systemd is "fixing" things that WEREN'T NEVER BUSTED DAMMIT making up new trendy fad ways to do things.
So other than again pointlessly changing the well known and understood API, what's the point of systemd again? How about just leave things the way they were?
That is, when the tty disconnects, it sends SIGHUP to the processes it controls. It's up to those apps to determine what is the right thing to do upon recieving SIGHUP.
You have no idea what you are talking about.
screen is a program that explicitly survives logging out and let's you reconnect later. It's the pure terminal version of vnc.
How many "multi user" systems are left anymore anyway? Practically every machine I log into these days is dedicated to my personal use. Just because I've logged out doesn't mean that it isn't supposed to still be working for me.
Perhaps you would like to rephrase that? Because it's unintelligible gibberish the way it's written.
It's not the aspies fault. It's the organizations as a whole going for the lowest common denominator. Google Chrome, for instance just got rid of "backspace = prev page" because it was confusing for some users. Power users probably enjoyed this feature and all the other features that get axed because "not enough users/confusing for some" reasons, and the end result is the Duplo-ization of whatever the product is. A product that anyone can use without hurting themselves, but that advanced users will find very frustrating if they want to do anything interesting.
It isn't bad to have products like that in the market, but it's frustrating when all of the products follow that path.
Yes, unless you start the processes with a systemd-specific incantation.
Apparently they had never heard of nohup.
You are exactly correct. Distros will have the final say in conf defaults. I don't see many holding onto the yes value for server branded versions of their distros, way too much breakage. For desktop and workstation, maybe, we will have to see. But seriously, this whole thing is a massive overreaction to a value that can be changed in a text editor in less than two seconds. But of course we all know that any systemd news instantly makes front page because of the massive knee jerk Slashdot has for systemd.
Its something that, if you are unaware of the change, can break things badly, perhaps even messing up ability to remotely administer a server and have to call for remote hands. So IMO its something, the default behavior of which, should not change within a major release version.
However its also the sort of thing I could see a Debian package maintainer deciding is a 'security patch' and pushing it out to stable that way. Similar to what happened with sudo.
In the free world the media isn't government run; the government is media run.
Correct. Rewrite everything in the past to accomodate our New Leader. All scripts, all startup commands. Shake it all up because the new Briteboys said so.
Oh, Hyperbolic twaddle instead of technical arguments. Hardly surprising.
Absolutely not. The job is running on the behalf of the user and should one go sideways, I need to know who to email about it. There is often more than one running at a time. Furthermore, they set up the data beforehand so it is owned by them and they will be the ones performing the post-analysis, so they need to own the output files.
Some run the jobs under screen, others prefer nohup.
In a larger group, there would be disk quotas to consider as well.
Sorry, but "Devuan" sounds like a half-black, half-Puerto Rican ladyboy. I can't seriously consider using it.
I don't know about him, but I have several machines that are only used by me that I log into and out of frequently, mostly because I'm doing so in different ways and from different places.
Even with the new settings, no user process will be killed on exit/logout if the user have told the system not to.
Instead of starting the program with with "nohup" you start it with "systemd-run" instead.
Yes. The issue isn't that it can't be done. The issue is that longstanding default behavior has changed. Since it appears that there's no good, solid reason for the change, people are objecting to it. Change for change's sake is bad.
Because they are remote headless systems and I don't need to stay connected to them in order for them to do the stuff I want them to do?
A multi-user system shouldn't allow unpriviledged users from consuming resources indefinitely.
If that 'unprivileged' user is on the sudo wheel, then why not?
"Trump!!", the new Godwin.
In the movie Fahrenheit-451 you're the dude gleeful that all the clutter is being cleared away.
Perhaps there is a happy middle ground. It's a fact that a super-cheapass PC these days can run a whole bunch of virtual machines each more powerful than a PC of not that long ago. If you have anything that makes enough fan noise to bother anyone, then it's probably past time to let go of it for a whole bunch of reasons.
With that said, I'm still dragging an Amiga 1200 around
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
That isn't a problem of course, even with the new systemd defaults. Just use systemd-run --user --scope screen and the process and all other processes started from screen will survive logout.
Do you really think that's a reasonable answer to the question of why systemd had to break things like nohup and screen?
You don't make gratuitous changes to systems that fundamentally alter how the system works and break common utilities in the process.
If you'd get Poettering's cock out of your mouth for ten seconds you might realize this.
But instead of using "nohup /program/ &" you use "systemd-run --user -scope /program/".
So a slight change in syntax, not a big deal IMHO.
Because I use Unix and not Windows for servers, I expect scripts I wrote ten or twenty years ago to still function without changes. This particular problem could probably be solved by simply adding a wrapper script, but a) that's obviously something that should come with systemd and not including it is irresponsible, and b) making this the default is also irresponsible.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Shouldn't that read: "Disclaimer: verified using hacked OS image in an unsupported environment, your mileage may vary."?
You're an idiot. The name of the command is part of its functionality. If systemd were to insert itself in front of the bash interpreter and swap around 'rm -rf' and 'ls -lh', while preserving the 'functionlity' of one under the name of the other, who would need to be jerking you off under the table for you to claim that nothing has changed, and 'it's not a big deal, IMHO'?
Yes. The issue isn't that it can't be done. The issue is that longstanding default behavior has changed. Since it appears that there's no good, solid reason for the change, people are objecting to it. Change for change's sake is bad.
Why do you think there no solid reasons for this new default. It is something somebody told you, or are you just presenting what you imagine as facts?
Well to be fair, Alsa was a heaping pile of crap for the things that pulse has been soo much better as (user shared media, splitting, per device mixers, etc..). Alsa is great for what it is: a high level sound card device driver. Hardware doesn't have a feature? You're forced to jump through the moon with pseudo-devices up the wall all manually to get shit to work. I love Alsa and it works for what its good for, but it certainly wasn't a tech stack that played well with modern end-user sound interaction expectations.
The pulse hate (of which I certainly spewed heavily at the time) was almost entirely due to flakiness. They added the kitchen-sink into pulse, but it was really really hard to configure, flaky, horribly latent, and just ultimately not ready for production. The the technology abstraction was exactly what they needed, but the polish wasn't.
How does this relate to systemd? Not much, but I'm sure there will be a storied history written about it. Everyone in the distro world seems to be embracing it. IMHO I don't give a fuck as long as I can write an init script which is run by something at some point to do something init'y.
Bye!
Log out = no more of your processes. Normal. Having "nohang" processes, for a regular user != root, is the exception.
Slashdot, fix the reply notifications... You won't get away with it...
If you still have the screen up, you didn't log out. By default, all Unices have had it default that a logout causes termination of your scripts. Unless you're root or have something that keeps your session active (eg. the screen command if your admin allows it).
Or you nohupped whatever you ran.
If systemd is using anything other than SIGHUP to kill the jobs, it's not allowing nohupped jobs to continue to run, and may also break other programs as well.
Ah, but the price for using 'systemd's extensive resource management options' is that it breaks your workflow, shell scripts, and everything else you might have had that relied on 'nohup' or 'screen' working as advertised. That's not improving anything. That's a Mafia protection racket.
"Nice shell script you've got there. It would be a shame if something happened to it. Use this command to run it, or else, who knows what might happen. Fucking pathetic.
*For a concrete example, all of your scripts that automatically ssh into a server, start a process with screen, and log out, now break. To name just one thing that I have done on numerous occasions.
Or you can just not use systemd, if you dont like it then dont use it.
Easy to say, significantly LESS easy to do.. I use/prefer either Debian or Ubuntu, and am currently on Ubuntu 14.04.. Since both the latest Debian (Jessie) and Ubuntu (16.04) now have systemd, as do most other well-known distros. Its beginning to look like I'm going to have to back to my "Linux roots", namely Slackware, where I started, back in 1995, when Ubuntu 14.04 goes out of support in 2019. From what I can gather, Pat V hasn't (nor will he) pollute Slackware with Systemd.
THANK YOU, Edward Snowden!! Americans owe you a debt of gratitude (whether they know it or not..)
Ordinarily, a user's processes SHOULD all be killed on logout. They're no longer logged on; they're no longer using or entitled to use the machine.
For better or worse, that hasn't been the way UNIX worked since at least the 1975-vintage V6 - you could use nohup, redirect the standard input/output/error, and run in the background to make a process be a job that survives logging out.
However, there will be cases where something long-term needs to go on. How hard is it to add daemons or background services in an administrator or batch context? That's where the long-term stuff should go. Olde days with VM/CMS: CMSBATCH was available to ordinary users if some job would run too long to be practical in foreground in the user account. Submit; it runs when scheduled (by the user or the system, depending on load) and returns results to the user account.
Perhaps UNIX should have had such a mechanism since the beginning, rather than later, for example, getting the at/batch command. For what it's worth, it didn't, only getting it later.
That's pretty much what I did a couple weeks ago. Then I realized "wow, this is so nice and clean running! It does exactly what I want, the way I want it!" And that is the whole reason I started with Slack way back in 1996.... The thing about systemd and pulseaudio is that they provide exactly *zero* new features that I needed, whilst severely screwing with the system. I went thru RH, SuSE, Debian, and now back to Slack... RH in particular lately has been pulling some bonehead moves WRT the traditional Linux base.
C|N>K
Shouldn't that read: "Disclaimer: verified using hacked OS image in an unsupported environment, your mileage may vary."?
No, it shouldn't, because it is a standard El Capitan running on VMware Fusion, not a Hackintoshed version of El Capitan running on some hypervisor to which Apple haven't given permission to run standard OS X.
(Sorry about the name mixup; I've been jokingly calling it "El Camino" for a while, but I meant "El Capitan", not "El Camino".)
You mean other than forking off Devuan, for example?
Note that apparently nohup doesn't work when systemd is killing processes on logoff. That's because nohup follows POSIX standards but systemd doesn't.
Screen has worked just fine for many years, and still does unless someone screws up the system with systemd.
What about when I have a long running process I need to run and I don't want it to be stopped if I get disconnected from wifi?
Why don't you just use nohup, because that's exactly what it's designed for.
Good, inexpensive web hosting
But you've listed none of those insults such that he may grow and learn.
Since you knew it was wrong before you posted it, and speaking of growing and learning. Also, as an example the rpresser.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Oh, I agree. I have hardware here that isn't worth turning on. More of it that I like to admit, but I'm a collector. I hate to see people with the attitude that it all should be shipped to the recycler, because there will be people like me in the future who enjoy old stuff. We don't need millions of Optiplexes mothballed everywhere, but there's a case for keeping some cool stuff around.
And nohup up is what systemd is breaking in this "update" ... do try to keep up.
If you switch to a BSD then at least in 6 months you won't have to do it again when systemd adds +1 (fuck semantic versioning, every release is a Major Release!) to its version number and makes some other major behavioral change that you will have to audit all over again.
If I have been able to see further than others, it is because I bought a pair of binoculars.
Personally I think this is a very good idea, and I know it's something I've considered on a few occasions.
The reason this is a problem is that when using home directory encryption you need a quick an easy way of making your data inaccessible, but as long as processes are running as your user the volume can't be unmounted, leaving your data open for everybody to read.
Killing all your processes and unmounting your encrypted home directory is a Good Thing(TM), and is semantically in-line with the meaning of 'Logging Out', aka - 'Im no longer using this computer'.
If you really want long-running processes it's pretty easy to create a separate services account, or use systemd containers, or docker etc.
Why so much fuss?
There must be other solutions to that particular problem that don't involve setting OS defaults that fuck everyone who has a use case different from "must at all costs keep encrypted home directory secure and inaccessible when not interactively using the computer". There are perfectly good reasons for having that as a priority, but it's not a priority for most.
Also, logging out does not mean "I am no longer using this computer", it means "I am no longer using this computer interactively". As many others have been pointing out, there are many reasons why a user would want processes to continue running while they're not logged in.
You're an idiot. The name of the command is part of its functionality. If systemd were to insert itself in front of the bash interpreter and swap around 'rm -rf' and 'ls -lh', while preserving the 'functionlity' of one under the name of the other, who would need to be jerking you off under the table for you to claim that nothing has changed, and 'it's not a big deal, IMHO'?
Do you really think your made up, incoherent hyperbolic stories counts as technical arguments?
It is scary to think that you probably are old enough to shave yet behave like a retarded 10 year old. You mother must really have hated you since you ended up in such a sad state. I am sorry for you, I really am.
Well, yes, in fact I'm taking that option right now. However, I'm well aware I'm living on borrowed time. Console-it is dead and unmaintained, has been for a few years now. The only alternative for linux is logind. Going without one or the other really degrades the whole expected desktop experience. Given a server system, you should still be able to run for a long time still without systemd.
As others have said, you're a fucking dumbass.
"nohup" exists everywhere. "systemd-run" does not.
You can do that with a cron job, if you really want to be a completely dickheaded admin.
Even with the new settings, no user process will be killed on exit/logout if the user have told the systemd not to.
FTFY, jackass. systemd ain't my momma and never will be.
"Somebody has to do something. It's just incredibly pathetic it has to be us."
--- Jerry Garcia
Hey, dickhead: many of us run many many machines, and not all of them have systemd.
You can keep dismissing people who are smarter than you than calling what they're telling you "twaddle", but it doesn't make it so.
Um.. Alsa is the low level driver. Pulseaudio is the semi userland audio server that runs on top of it.
If you can't get alsa to work pulseaudio won't either. To be fair, pulse was only crap when pottering was controlling it. When it was dropped into the lap of others to maintain after he decided to do this whole systemD crap It got better.
I wish I had mod points, because I just squired milk out of my nose.
"Somebody has to do something. It's just incredibly pathetic it has to be us."
--- Jerry Garcia
Again, Peter, not all of my machines run systemd.
Is there a single person here who doesn't think everything you post is complete shit?
Yes it does. It is an existence proof that refutes your claim.
What's scary is that you think that software "improvements" that end up making your users do *more* work to get the same functionality they had before are a good thing. Good engineering, you know things that customers are willing to pay for, has the property that it relieves the user of a tedious chore. A tractor that replaces two mules is a good example: who would pay for a tractor that took *two* mules to pull? Similarly, software that breaks compatibility for no good reason is dead weight that takes two mules to pull. Who the fuck would pay for that?
These people (Lennart et al) just do not get the concept of a multiuser operating system so it makes perfect sense to them.
Can we please get an architecture document from the Linux core developers LIMITING the scope of SystemD?
SystemD is supposed to be the Init / Service Management Daemon, and it should have no responsibilities related to managing user sessions.. That's Getty's Job, or SSHD's Job, for example, which is unrelated to what SystemD needs to be doing.
Don't confuse networking with what makes UNIX useful. See http://www.catb.org/esr/writin...
Sending passwords in the clear wasn't unique to UNIX, so it's a bit disingenuous to assert that.
Users doing things in insecure ways is a hallmark of Linux because users/developers started treating the system as a single-user box with annoying legacy multi-user cruft getting in the way.
Systemd is a natural result of treating the UNIX philosophy as a design flaw.
You edit my scripts. My scripts were working fine before. You made the change that fucked them up, it's on you to fix the damage. Where shall I send the bill to?
Incidentally, any place I would used ssh in a script with cached credentials or keys, I can probably use rsh with no security drawback. Because...you know...layered security and all that.
Just edit your scripts.
Are you serious? How about you edit my scripts? You broke it, you fix it.
"Somebody has to do something. It's just incredibly pathetic it has to be us."
--- Jerry Garcia
One of the more bizzare of which is you could speed up performance of X by blocking a port that pulseaudio listens to on the network. There should have been an option in pulseaudio to turn that absurdly resource hungry polling off instead of having to use iptables to block it.
Everything RedHat has put a lot of work into has been embraced, even NetworkManager and SystemD.
Basically systemd is built on a totally fucked up concept - a concept in which whatever the users do is not important, only system resources count, and if the users do not like it, they can go fuck themselves
That is basically what systemd is - and it perfectly reflects the way systemd's proponents think as well
Muchas Gracias, Señor Edward Snowden !
Different systems. You don't need alsa with pulseaudio and vice-versa, but most distros come with both since they both have weaknesses.
But please. WHY. THE. FUCK. break decades of well-established Unix conventions? Why the actual fuck? I hate the arrogance of the systemd folks who think they are doing everything better. Even Darwin respects Unix conventions more than systemd. And yes, they scrapped sysvinit too. And yes, I still prefer sysvinit.
Well established Unix conventions, like using unencrypted connections (Telnet, UUCP, rlogin etc) that sends password in clear text? Unix was chock full of insecure way of doing things and an unfortunately a lot of this have carried over to Linux with the end result that multi-user Linux security seems to rely on users being nice guys as a basic security measure.
With this change, people can at least ensure that their user run service doesn't DoS the server unintentionally.
No, it doesn't actually fix any of those possible issues at all. It does nothing to prevent them.
"Somebody has to do something. It's just incredibly pathetic it has to be us."
--- Jerry Garcia
It does create (which seems to be the whole idea of systemd) incompatibilities with other systems. Suddenly, I now have to care if my script is running on Systemd/Linux or if it is running on any other Unix system (and yes, I have scripts that currently work perfectly without modification on IRIX, Solaris, and Linux).
I'm starting to think GNU is the problem with "GNU/Linux" these days.
No problem - just change the way we do things to the way Lennart decided to do things this month?
Sounds like a problem to me.
What is a solid reason then which justifies breaking a lot of stuff and confusing users?
We think there are no solid reasons because we are not aware of any of them.
Instead of empty excuses how about some of those solid reasons? Are there any?
Closed source workstation software. The user can't modify the process launch and put "systemd-run" in front of things and when they close the GUI launcher they still expect their stuff to run for hours or days instead of being killed off by a pointless major policy change.
RedHat should kill this with fire since it's a direct threat to the RHEL market.
Guys I think this Peter H.S. is deliberately trolling and is writing this ridiculous stuff just to get people angry.
It does create (which seems to be the whole idea of systemd) incompatibilities with other systems. Suddenly, I now have to care if my script is running on Systemd/Linux or if it is running on any other Unix system (and yes, I have scripts that currently work perfectly without modification on IRIX, Solaris, and Linux).
Cross platform scripts have always been problematic. Sometimes they work, sometimes they get broken when things change. Solaris changed a lot with SMF etc, and Linux with systemd. That is just progress.
Most of the old close source Unix's have chosen not to evolve and are now firmly niche OS's working in a very narrow confinement (and loosing ground there too every year).
Linux runs everywhere, from tiny embedded to clusters and supercomputers, and therefore have other needs than classic Unix. It is just logical that Linux evolve with new features while many Unix's are standing still, and that therefore it will become harder and harder to run platform-independent scripts on them. While it may be inconvenient to some, it is what is saving Linux from ending up in the same, small dying niche as the close source Unix's.
In 10 years there will be even less Irix, AIX, Solaris etc., but Linux has a fighting chance still to be relevant in the future, exactly because it changes.
You don't want your long-running processes to have root privileges. It's a massive security hole. Many of the Linux daemons for server use run on less than root privileges (Apache, MySQL, etc).
A better approach would have been to have a group that had the ability to make processes run after logout. That would be a security improvement, since you could then determine which users had the rights to have persistent processes.
This is change overturns about 40 years of Linux/Unix computer history. The concept of nohup is used everywhere in Linux server land, and breaking that programming idiom will have significant ramifications.
A multi-user system shouldn't allow unpriviledged users from consuming resources indefinitely. It's too easy to starve a system or resources. I think that's one of the reasons behind the isolation dockers provides in the first place. Shut down the container and everything gets cleaned up.
What "multi-user systems"? Multi-user systems died somewhere around the turn of the century, when the personal computers became common.
Secondly the people whinging about there do not give a shit about your concerns over large computer systems. And you should listen to them, because they are the people who run those systems. They are the sysadmins in charge of large clusters of machines they control with the likes of ssh, ansible and puppet. If there is a task left running when they log out, it is because they wanted it to be running.
All that aside, this is not 'nix having some issue with leaving processes running indefinitely when a person logs off. I've used 'nix of one version or another since V6 - and even back then it had a solution. When the user logged out, a SIG_HUP signal (so named because back then it was trigged by a modem hangup) was sent to all processes started by that login, and they were killed. So it's been a solved problem for 30 years.
The current problem is the caused by desktop guy's themselves. All the processes that drive their windowing systems needed to communicate, so they created one. Actually they've created several - corba, dcop, and now dbus. Initially they were used for communication configuration changes and such - eg, when you change the desktop font size everyone knew about it immediately, so the entire screen just changed. Then they found new uses for their toy - and soon it is used to communicate to backend daemons to do thing like bringing network interfaces up and down, which often required new processes to be created. That was followed by "address book servers", and "wallet servers" and god knows what else. In doing so they managed to break the old SIG_HUP system for desktop users, because their sometimes new processes weren't spawned by child processes of the login - they were instead spawned by system daemons.
So the desktop guys created a problem for themselves (only). The rancour you see here is the solution they have implemented and forced down everyone's throats breaks existing stuff. This is just laziness. If they insist on designing systems that have background daemons spawning per-session processes they could go to the effort of, you know, tracking them, so they can kill the bloody things when the session ends. Tracking things is after something computers do real well. Yes it would be more work - but they created the problem.
That said - if they were to go to the effort of accommodating legacy stuff (which they did in an exemplary way for the change from SysV init to to systemD init) by say offering up patches to the few programs that do leave stuff running in the background (nohup, term, screen, ...) I still wouldn't be satisfied. That is because what they have put together is a godawful mess, and this "solution" typifies it.
The first time I noticed the winding IPC monster was starting to grow is vim complained it could not save its settings ... when I was running it on a remote machine. wtf? Turned out they had pushed the tentacles of this mechanism to a remote VIM, and it was trying to save its settings on my laptop. Then ssh stopped shutting down properly - turned out because they weren't closing the IPC tunnels they had built. Then network connections started mysteriously changing their configuration - because the desktop had told network-manager who told a dhclient to do something with a virtual network device I had just created - wtf? It has since become evident that where before I could see state of my machines in static text files in well known places usually put there by me, now it was configured by inscrutable ephemeral messages being tran
I'm truly convinced now - definitely trolling and having a laugh at all these geeky linux folk. Scum.
Perhaps you are unfamiliar with how open source works, they made a change in their project that suits them. If you don't like their change or contribution (or indeed their project) then you don't need to accept it, they don't work for you. These fundamental concepts of contribution start to get forgotten as a community moves from appreciative of contributions to a dependency and sense of entitlement. You either break your dependency on Red Hat or you accept that they are going to do things you don't like.
Usually mysql and the like are started by root, but immediately do a setuid (mysql user). These processes will not be killed at log-off.
Slashdot, fix the reply notifications... You won't get away with it...
Have to agree with the person above me: the Backspace = Prev Page thing was a colossal pain in the arse... if for some reason you'd lost focus from a text entry box, you'd hit backspace and end up on the wrong page. There was no need to have Backspace do that; that's what Alt-Left (and Alt-Right for Next Page) are for.
Closed source workstation software. The user can't modify the process launch and put "systemd-run" in front of things and when they close the GUI launcher they still expect their stuff to run for hours or days instead of being killed off by a pointless major policy change.
Just lock the session instead of logging out. That would be the typical thing to do with a workstation since it runs a DE of some sort.
I must say I have a hard time imagine CLI software being launched from a GUI and then detach from the terminal. But I don't think there is any problem with using "systemd-run" on the GUI; that will create a new scope and anything executed from that scope will remain in it. So even if the GUI is closed, the scope will remain with all the processes launched from it.
At worst they can just add the user to the "KillExcludeUsers=" in logind.conf to have the old behavior.
How about a statement from your doctor that you're fit to converse with other people? The "Linux core developers", whoever they are, aren't responsible for systemd, and have no say in its development. They can voice opinions, just like all the idiots here on Slashdot, but they have no vote or control.
The pathetic little troll appears to have no idea that running applications remotely via X instead of MS Windows RDP is a thing.
Peter H.S. - why are you wasting all the time of all these people with your nonsense and deliberate antagonism?
Even with the new settings, no user process will be killed on exit/logout if the user have told the systemd not to.
FTFY, jackass. systemd ain't my momma and never will be.
Maybe you need a real mother that can love you unconditionally for what you are. You certainly seem like a bitter bileful person in desperate need for love.
Something handed over to a thing like torque/openpbs or other scheduling systems will obviously not remain in the scope - as would many other things.
Closed source workstation software frequently has many parts and it is impractical to write little wrapper scripts around each portion that is called in a non-trivial way.
Or you could edit one line in one config file and get the behaviour you want back. No need to throw a hissy fit.
There is still a huge reason to throw a fit. If I need to kick off some background jobs on a bunch of machines reliably, I will now have to check how the system is configured first, and probably wrap that up in my own nohub-or-systemd-run wrapper, checking if systemd-run even exists, if so, how is logind.conf configured, then use the correct wrapper. All this why? Because some applications aren't respecting the conventions that have existed for ages, so let's make new ones?
Hey, dickhead: many of us run many many machines, and not all of them have systemd.
Then use different procedures for different machines. Not a problem in the real world where people often work with several incompatible OS's. Anyway, that problem will solve itself as the non-systemd Linux machines slowly are phased out.
"killing leftover processes on logout. In my world, that's what I actually expect"
Well, he's simply an arrogant idiot. Usually, that wouldn't be a problem, but when it affects thousands of users, it surely becomes a big one. It takes a particularly huge moron to think everyone uses their computers like Mr. Know-it-all.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
The pathetic little troll appears to have no idea that running applications remotely via X instead of MS Windows RDP is a thing.
X's network transparency have basically been broken for many years for anything complex. For simple uses of old legacy software it may still work for some. But really, I and many others are cheering for the day we can clean our systems for that insecure monster called X and start to use Wayland. Yeah, that will break peoples workflow too. But that is how progress works.
Peter H.S. - why are you wasting all the time of all these people with your nonsense and deliberate antagonism?
If you don't want me to answer your often rather unsavory personal attacks, then just stop talking to me. I don't remember starting to address you in the first place.
That's the shitty behavior you expect from Apple or Microsoft, not what you should get out of a system that runs on tiny embedded machines up to 1000+ CPU supercomputers.
You seem to be confusing Linux and systemd, when you say the "system" what is it you mean? Indeed Linux does run on many embedded systems, on many millions of smartphones and on most supercomputers but these do not run systemd and Linux is not systemd.
"Linux has a fighting chance still to be relevant in the future, exactly because it changes."
Well, you assume every change is for the better.
Which is idiotic.
This change is a perfect example.
Also a perfectly good reminder about the f*ing boundless arrogance systemd's developers are equipped with.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
Something handed over to a thing like torque/openpbs or other scheduling systems will obviously not remain in the scope - as would many other things.
Closed source workstation software frequently has many parts and it is impractical to write little wrapper scripts around each portion that is called in a non-trivial way.
It goes without saying, that if the close source vendors want to sell their stuff as supported on RHEL and E-Suse, and this is something they certainly will, they will make sure their stuff works with systemd.
Not familiar with "torque", but this doesn't seem like anything a single user will start from a terminal. It seems more like a fundamental system service, and therefore won't have any problems with "KillUserProcesses=yes".
Nor would any jobs it handed over to other machines be affected, unless it happens to "physically" login with username and password and run the instance under that user account. Highly unlikely IMHO.
Well, you assume every change is for the better.
No I don't. I just accept technically superior solutions as the way forward, even if they means another way of working.
I have no sentimental feelings for old, close source, Unix systems made by money grabbing, Linux-hating companies. So I have no problems discarding ancient Unix ways of doing things if I find new ways that are better.
Finally, I actually study the new tech I embrace by reading the technical documentation. That is apparently a lost art among many modern Linux users.
"systemd is an init system used by some Linux distributions to bootstrap the user space and manage all processes subsequently, instead of the UNIX System V or Berkeley Software Distribution (BSD) init systems."
I run Slackware since ... ever. At about 20 years. And using it as my primary desktop since ... ever. Browsing web, handling e-mail, watching movies, running LibreOffice, managing family photos, developing in C and Java, playing (admittedly older) games. Yes, occasionally I do some steps that I would not do on another distro - often because I want to, not because I need to. But the benefit is a system that is easy to understand, that does not screw up by itself. On the other hand I use some Ubuntu machines at work, and I'm baffled that some tools (nmap, whois, rpm2tgz, locate, ... ) are missing in default install. So I'm finding Slackware very usable.
The syntax alone makes you want to kill them all. Stuff that used to make sense now makes absolutely no sense.
But that's exactly what systemd does! It gives you tools to run these processes in their own scope, so that their resources can be properly managed, and the admin knows that these processes are meant to hang around.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
From that manpage: Also, please note that all limit settings are set per login. They are not global, nor are they permanent; existing only for the duration of the session.
Gosh, seems that limts.conf by design does not do what you say it does. If you log out, to what session does your screen process belong now? Systemd has taken the choice that unless you mark it as explicitly running in its own scope, it goes away with your session, something completely within the design spec of limits.conf. Yes, if you don't read the documentation, this comes as a surprise. True, the prinicple of least surprise says that defaulting to this behaviour is a bit less than optimal. But it is a reasoned deviation from the defaults, even if you disagree with it.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
Well, it's obvious who is the idiot here: the one who can't read and see that Martin Pitt explicitly mentioned that use case as not being covered by the new default.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
Can we please get an architecture document from the Linux core developers LIMITING the scope of SystemD?
SystemD is supposed to be the Init / Service Management Daemon,
Can we, instead, get a project rename from the systemd developers, so that there's a name for the suite of programs they maintain that's not the same as the name of the process-1 daemon in that suite? That might keep people from making "that doesn't belong in the init daemon!" arguments about "systemd" when the "that" in question is being done by another daemon in the suite.
The offending behavior appears to be behavior of the systemd-logind daemon, which is the daemon that...
and it should have no responsibilities related to managing user sessions.
...is "a system service that manages user logins".
That's Getty's Job, or SSHD's Job, for example, which is unrelated to what SystemD needs to be doing.
Actually, getty, on many UN*Xes, is 1) run by the init daemon and 2) execs the login shell without forking, so that it doesn't stay around for the duration of the session, which means that the job of terminating the session when it's finished belongs to, err, umm, the init daemon.
If for worse, what's so bad at changing it? The worst I can think of is someone not reading the documentation on an upgrade and being surprised by the change, but if you upgrade critical system components without even reading the docs, let alone running them on a test system first, well, you deserve what you get.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
Actually, if, on a Mac running OS X, you do nohup blahblahblah >/tmp/blahblahlog 2>&1 & in a Terminal window in a GUI session, and then log out and log back in again, blahblahblah will still be running (verified experimentally on an El Camino (virtual) machine just now).
Harrumph El Capitan, d00d.
(If it warns you that there's a process running in Terminal, and that logging out will kill it, tell it to close the Terminal window anyway; it's lying, the process will survive. I'm not sure what signal is getting sent, if any, but it ain't SIGKILL - perhaps it's SIGHUP, as nohup's purpose is to make the process ignore SIGHUP.
To be fair, the OS X nohup, as well as, apparently, the OS X screen has been modified to call _vprocmgr_detach_from_console() , and that document is part of a version of tmux ported to OS X.
So perhaps screen, tmux, and nohup need to be modified to, on systems with systemd, do whatever the appropriate magic is necessary, just as is done on OS X.
It's not the daemons I'm worried about, it killed my children! And ate my cat.
Despite ongoing challenges, I am yet to see a use case presented that the existing initd system cannot handle if you take the time to understand how to use it properly.
I genuinely want to know why systemd is better than initd? As now I am being told that I'll have to make modifications to the way somethings that have worked for years. Do you systemd proponents actually have *any* experience on enterprise systems and how hard it is to get root access to modify these behaviors?
If you want systemd so badly - why don't you just make it a service of initd? Why are you guys, who cannot demonstrate you know any better, subjecting everyone to use this?
My ism, it's full of beliefs.
How about the systemd kiddiez go get their own sandbox to play in?
Or at least quit proselytizing for a giant hairball that's hard to rip out.
To me systemd is looking more-and-more like an industrial sponsored trojan horse (i won't be dragged into who sponsored it) to upend linux as the ramifications of this 'thing' is becoming increasingly ugly. It is truly a case of fixing something that wasn't broken.
Probably quite a bit because no-one does any research on the issue before winding their neck out and making random ignorant statements especially as its just a configure change not a functional one.
From the fedora thread on this issue.. "systemd 230 now finally flipped the switch and finally by default cleans everything up correctly when the user logs out. But we do so in a very conservative way actually:
a) there's a compile time switch to turn this off globally (--without-kill-user-processes, not used in Fedora)
b) there's a runtime switch to turn this off locally on the system (in logind.conf)
c) there's a way to opt-out invidually for each user and each task from the cleanup logic, via systemd-run/loginctl linger. This operation goes through PK, and thus can be configured in a more strict or more open policy, depending on whhat the admin prefers.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
All they have changed is a default config option, just change it back or
a) there's a compile time switch to turn this off globally (--without-kill-user-processes, not used in Fedora)
b) there's a runtime switch to turn this off locally on the system (in logind.conf)
c) there's a way to opt-out invidually for each user and each task from the cleanup logic, via systemd-run/loginctl linger. This operation goes through PK, and thus can be configured in a more strict or more open policy, depending on whhat the admin prefers.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
Please add to the /etc/apt/preferences.d directory a file with the following contents:
Package: systemd
Pin: origin ""
Pin-Priority: -1
The rant is more like: "Why is systemd on my system? It's overly complex, works poorly [for server systems], it breaks backwards compatibility, uses binary log files (WTF!), etc."
Blame your distro maintainers that decided to use systemd or choose another one that doesn't use one. Ranting from a point of ignorance is a waste of time and ignorance is the start point of all anti-systemd rants. The ranters would spend their time better if they RTFM on systemd and learnt how to configure it.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
I expect most admins would prefer the default behaviour to be to clear up left over processes and services when the user's last session disappears.
And ate my cat.
If it left the tail, you can probably get by.
Why do you think there no solid reasons for this new default.
What are they? I haven't seen a compelling reason to replace systemd and I am wondering what they are supposed to be. I have test machines with systemd running and spent time getting my head around unit files and jounalctl and I see reasons why it is worse and none that it is better that the existing initd paradigm.
It is justifiable why a lot of people are angry about such a change being forced upon them. systemd is replacing a lot of core knowledge people have about the behaviour of their systems and turning that knowledge into assumptions. There is nothing wrong with learning something new if people understand that there is a good reason for doing so, however people with alot of experiences are being told to accept this change because.
Instead what we have seen is a demonstrated *mis*understanding of the way initd works with vague justifications by those pushing systemd. The only solid justification I've seen is because the rc.d initialization scripts don't work that well - and they were Red Hat's idea in the first place and they neglect to use inittab features of initd properly.
The burden of effort is not on those who have spent their time learning how to use initd properly to prove why systemd is a bad change, the burden of effort is on those who think systemd is a good change and why it is worth voiding my existing investment in time to learn how to use it.
Also, consider the precedent it sets. Somoeone spends their time learning systemd and a few years later the maintainers say "you know what systemd was a bad idea, we really need to go back to the drawing board and do it again" and we are back to where we started from.
You have assumed the mantle of suggesting this change is a good idea, so are you able to suggest a use case that systemd covers that initd does not? What specific things is it that systemd does better that can't be achieved with initd?
My ism, it's full of beliefs.
Well I've been watering it for a week but it's not growing another cat out of it.
Apt-get install sysvinit-core seems to fix it...
apt-get install sysvinit-core presents far fewer problems and future surprises. Why swat flies all day when I can just close the screen door?
Google "principle of least astonishment".
Beyond that, the question was "So other than again pointlessly changing the well known and understood API, what's the point of systemd again?", not "How can I turn/burn that particular wart off?
Man up already.
Welcome to the world of system admin and maintenance......
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
Too late, I think I'm well and truly forked.
Is it really now insane to want ill behaved processes to be terminated when you log out of a session? I would say that this is instead expected behavior already by most users. That it _also_ happen to affect nohup and screen sessions are serious but I see no one that claims that this will be unresolved by the time v230 ends up in stable distributions. Once again this version is only available on Debian Testing, which is the correct place for you now, testing.
While "clean up after yourself" is generally a good idea (ask your mom!), in this case it is going to cause a lot of problems because it is being enforced from above in ways that will have unintended consequences because the enforcement mechanism doesn't understand context. I am sure that screen/tmux aren't the only tools affected.
Heck, I implicitly rely on persistence of background processes myself on a semi-regular basis. Doing something that runs counter to this expectation is going to break random stuff, and result in a lot of pissed off sysadmins. This behavior arguably makes sense for desktop distros, but given that Debian is primarily a server distro it should not be the default. Let downstream desktop distros like Ubuntu/Mint/etc. modify the default behavior, if they deem it appropriate (it doesn't even require a code change, it is a config option).
It is also symptomatic of the "all bow down before systemd" mentality, and I have a big problem with that. They may have good intentions, but there are some serious issues with how they're going about implementing their vision.
yeah because it was that hard to understand that it was supposed to be "do not". What are you, a PowerShell parser?
apparently you know nothing about systemd's config
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
Again and again I've heard people like you suggest that Slackware is a replacement for a modern mainstream distro like Debian. Others suggest Gentoo.
Well, the reality is that neither is sufficient.
Slackware is, to put it politely, very primitive. While simplicity is a good thing, Slackware takes it to the point where it becomes a liability.
When using Debian, it's possible to get a full-featured desktop or server set up with very little effort, and this can be done quickly. Thanks to sensible defaults and a practical installer, manual configuration is kept to a minimum.
Slackware, on the other hand, requires far too much manual intervention just to get a minimally usable system set up ...
A.C. --
Please define primitive, very little effort and manual intervention.
I can have a fully functioning Slackware system up and running in 30 min, including formatting the HDD with very little manual intervention.
Slackware 14.2 is about to be released. It boots either BIOS or EFI and runs Linux 4.4.11 and a number of Desktop Environments, all without systemd.
There is now a set of 'slackware live' ISO images where I can run with persistence and optionally encrypted from a USB Drive:
http://docs.slackware.com/slackware:liveslak/
When I like what I see, there is an option to install liveslak to the HDD.
As I said Slackware 14.2 is about to be released. This version has succeeded in leaving systemd out while still being able to run the most recent releases of upstream Apps.
Have you actually looked at Slackware ?
There's a lot to like.
-- kjh
unfortunately 99% of the troll or anti comments are from people who have not done any research or RTFM at all and make knee-jerk comments based on their ignorance and the ignorant comments of others.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
"It's a fact that a super-cheapass PC these days can run a whole bunch of virtual machines each more powerful than a PC of not that long ago."
But now that nearly all modern CPUs have been infiltrated with side-band chips (see "vPro" and "SIMFIRE" etc...) it is extremely difficult to put together a trusted computing platform.
Those older systems, provided they are powerful enough to do the job, may have more value (for some tasks) than many realise.
he's done his research before making accurate comments which more that i can say for 99% of the anti's. and i posit that the security of knowing what is legitimately running on my system after log out is reason enough.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
all the major distros seem to disagree with you.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
i thought it was very obvious, security of your system and the security of knowing what is still running legitimately after you logout.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
so its more work for you to write, test and maintain the script(s) etc to do this work when it could be configured once?
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
good grief. if all your scripts of 10 to 20 years are without any modification in any way, that's future proofing in the extreme. (or no updates at all)
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
now you are really grabbing at straws
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
Wouldn't have a problem with it being there, if it wasn't the only thing there.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Apologies.. Killing nohup'd processes is so undeniably stupid I read the summary wrong.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Console-it is dead and unmaintained, has been for a few years now.
There's a fork called ConsoleKit2 since last year which is maintained and, rejoice, there's no systemd in the minimum requirements list!
Yes I am seriously suggesting to edit scripts so they work with new tech.
I would if this was new tech. This isn't new tech, it's old tech (MS-DOS/Win3.1) with a new name.
I'm a minority race. Save your vitriol for white people.
It however have to be said that just because v230 of systemd have changed "#KillUserProcesses=no" into "KillUserProcesses=yes" in /etc/systemd/logind.conf does not mean that distributions will ship with this. v230 have just hit Debian testing so it will be quite a while before it hits Debian stable.
In Fedora 23 with the latest updates the variable "#KillUserProcesses=no" is set in the /etc/systemd/logind.conf file. If this is not the case in Debian distributions then change it back to "no" -- hopefully, the problem is solved. Having an update change configuration settings is reprehensible and deserves the severest criticism. Well, I won't mention (cough!) a certain OS that a huge corporation is trying to foist on us --- for our own good of course. ;-)
There ain't no such thing as proprietary standards only proprietary formats. Standards are by definition open.
Who's bitching about debian? No one.
Who's bitching about systemd's insanity? A lot of people.
Who's concentrating on things hopefully working in debian stable? You.
The problem appears to be Debian specific and not on other distributions.
The systemd process will only do what it is configured to do no more no less. If your configuration is changed as part of an update then the blame lies squarely with the update process for that particular package.
Look at the /etc/systemd/logind.conf file (check it's last modified date) and check that following is set "#KillUserProcesses=no". If it is set to "yes'" then set it to "no" and restart systemd -- problem solved.
There ain't no such thing as proprietary standards only proprietary formats. Standards are by definition open.
Don't use systemd. It violates the very core philosophy of Unix.
And on the Eighth Day, Man created God.
I question whether it's technically better or change to sell consulting hours etc etc.
What technical issue does this fix vs how much does it break. I've never gone OMG let me go clean up user processes left behind after logout it's taking my server down. I do not recall hearing others complain about the same. It's unix we have had the ability to spawn long running background processes forever and it's a known useful feature. Systemd is doing the old way is broken use the new way to get the same functionality. People seem to disagree with the old way being broken, I do. To me it makes far more sense to add something to logout maybe logout --killall or some such (mind you that may well allready exist) than have the init system killing processes. If I realy want my init system doing this I would want it restricted to a dumbusers group but a global on/off (I'm making assumptions here have not looked at the particulars for this "feature" as I have no need besides disabling it) seems far to heavy handed.
What this realy boils down to is them making a new way to do the old thing in an embrace and extend sort of way. How long till there is a global find/replace and the problem case is the same. Your problem user case will figure out the new way and your no better off.
No sir I dont like it.
The fact that they documented their broken choices, and incorrectly label them "very conservative", does not change the fact that the changes are stupid and break well-considered, long-standing behaviors in order to clean up after other software that is equally stupid and broken.
The article is wrong. Systemd didn't change anything. Debian's config for systemd changed a default. Either option is a problem for people. But its not unreasonable to assume that users that want to have long running process know more about their systems and thus how to change them than users who want everything to stop when they logout. The change in default makes sense, and systemd is doing the right thing here.
What's a pain is the disruption caused by transitioning from a non-sensible default to a sensible default.
So it's okay for malware to be running as long as you're logged in, but it has to stop when you log out?
That's the second stupidest thing I've read in this thread.
That's standard behavior in OSX and iOS. Its easy to do once you start pushing through the idea that the OS's process manager decides what is going to be running.
You do relize that those oh so bad programs are ancient? Back when you could not export any sort of crypto as it was considered a munition. Back when encryption was a massive amount of CPU time. We did have ways Kerberos existed, legally getting them out of the USA was very tricky.
If you're realy worried about lusers cgroups gives you far more protection than killing processes of a logged off user.
No sir I dont like it.
eh? what on earth are you on about? are you replying to the wrong post? who said anything about malware being ok at any time? At least with this config change (if you keep it), if it is running it will be killed when you log out.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
I left Windows (when it was 95) for Linux, because all I could do more was copy/paste some things into the regedit that I had no real idea what they were doing.
With Linux I had a system that I could do things myself (and screw it up myself).
Now we have a BIOS that wants to do everything, running a boot loader that wants to do everything staring a GUI that wants to do everything with a Desktop that wants to do everything that runs a browser that wants to do everything to visit a site that wants to do everything.
And if you have an issue, they all yell "It wasn't me." and point their fingers to others as if they are toddlers who stole candy.
Don't fight for your country, if your country does not fight for you.
Process management is exactly what this article is about. There are no more serial terminals. The current state looks nothing like a bunch of physically wired terminals in a computer room and getty shouldn't exist. It should simply be replaced with something that fits the current paradigms.
As for sshd: sshd should be registering activities that need to survive outside a session with systemd. It has no way of knowing anything about global resources pools and can't make any intelligent decisions about how to handle scheduling. Its hard to think of a worse place.
You... might want to understand what you're criticizing before shooting off your mouth. Under POSIX, the login session lasts until the last process in it terminates, not until the login shell terminates.
This is standard on OSX and has been part of Unix for many years.
If there is a just a slow FTP then everything is fine. Slow is not the same as off. If it goes off, then the daemon (if configured) wakes periodically and checks if it can resume. The system process monitor decides though when the right time to run these "it can wait' daemons.
As for distros that is what's happening. There are systemd distros and non systemd distros and they are forking further and further apart.
yawn... Pen and paper used be the way to do things so whats your point? if you don;t like tightening up security on your systems, thats up to you. I presume most of the anti are like the manual workers of old who were worried that computers would take away their jobs and in this instance systemd is taking away manual tasks from you.
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
And tell your system you want that. You can change default config on Unix.
glad to see you love nostalgia
"The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
How many "multi user" systems are left anymore anyway?
Many billions. There are now many dozenss of exabyte datacenters. Those aren't filled with single user machines. AT&T sells over 1/2 their cellular bandwidth to embedded systems.
The single user computer is still important but it is not the norm.
/. must have associated my comment with the wrong one of your spammy comments. I was responding to your assertion that now only "legitimate" processes will be running when you log out. Clearly, you don't have a clue about why that is *not* a pro-security approach.
How does an admin allow you as a user to run arbitrary code that consumes arbitrary resources and protect everyone else? He can have an operations staff or maybe a scheduler but that's precisely what systemd is laying the groundwork for and making possible on Linux.
systemd seems to want to fix the problem that Linux is a successful server OS.
"we are all atheists about most of the gods that societies have ever believed in. Some of us just go one god further."
The point of systemd is process management. To give to Linux what Solaris, Digital Unix, AIX... have for big box. To give Linux what mainframes have (or at least some fraction of it) since Linux is replacing those use cases. And on the desktop to give Linux what Windows and OSX have.
How about doing anything that takes a long time and you don't want to remain logged in for it to complete?
You use screen for that. (My phone, SailfishOS powered Jolla, has this kind of session clean-up enabled on its systemd. Screen is *the* way to do long-duration running).
Or nohup (though I'm not sure if that one is considered as a separate login-session)
so you redirect stdin to /dev/null, stdout to one file, stderr to either the same file or another file,
If you just muck around with redirections and process in background, chances are it won't be correctly dettached/disown.
And in what way does this new mechanism "enhance security"? Running something in the background after you log out doesn't give you any more privileges than if you remained logged in.
It's 2016. We're at the Internet Age.
You don't need root privileges to wreck havok on the network.
And End-User's privilege level is far enough.
Same to do shit on a user's home directory:
A ransom ware doesn't need root privileges to encrypt all end-users' data neither.
e.g.: a Firefox browser of which you've closed the main windows, thus quitted the GUI. But for some reasons there's still a process running in the background.
(It does happen from time to time, when its clean-up procedure is stuck in some loop).
Such a process, which is clearly *not a daemon* would still linger around under older rules, and if that daemon has network access still open and could be hacked, then damage could be done. The setting in logind.conf is one way to handle this kind of scenario (and apparently the debian packagers have decided to turn this on).
But normally, there are clear rules that one must follow to create a daemon: .service conf file that defines it as a daemon.
- old style, pre-systemd: double-fork so the grand-child process gets assigned to PID1, along the necessary file descriptor handling.
- systemd-style: normal process, but launched using a
For anything else, you should use at best screen.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
This is Linux. Software competes. Upstream gets to decide what mainstream distributions do. At this point the alternative approaches get a sandbox and they have to convince people they have a viable approach. (excluding on embedded where non-systemd distributions are doing fine for now).
POSIX is decades old. POSIX was designed to solve the problem of competing big box unix solutions and the difficulty of writing software for all of them. We don't have that problem anymore Linux bankrupted most of them and the rest are being shutdown slowly. big box Unix is dead and Linux now has to deal with their customers.
It is still difficult to write software for the various Linux distributions but POSIX doesn't help that. LSB is likely the new POSIX. And LSB is actively supporting systemd as an option.
Everyone would have been happier if one of the other solutions had panned out. The Linux community isn't used to someone just winning. They are much more used to choice. But openrc and upstart both failed. Someone won, and now we have a new standard.
There are many distributions that don't use systemd but they are more niche. Try something like puppy if you hate systemd.
Dude it is time for you to accept init lost. The principle of least astonishment is following systemd policies. The reason you are being astonished is because you are expecting things to work like they did in the days of init.
Of course there is good reason. Only the process manager has the global knowledge of the competing demands to make intelligent choices about resource allocation. Given competing demands for a system to work well intelligent choices need to be made about what should be running when. That's systemd's job.
It's really a bit more complicated than that; a session lasts until the session leader kills all other processe; but even so, just because something's always been done that way does not make it a bad idea to try and improve upon it. And yes, I consider the systemd solution of using cgroups to create another sessions scope an improvement.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
Runtime dependencies:
Process A depends on B which depends on C which depends on D which depends on E.
C crashes. You restart C. What do you do with A, B, D and E?
And if they wanna watch star wars, they telnet to towel.blinkenlights.nl
or mplayer -vo caca|aa videofile.
*For a concrete example, all of your scripts that automatically ssh into a server, start a process with screen, and log out, now break. To name just one thing that I have done on numerous occasions.
Hey, if i understand the way logind works, if you login as root and run the process under screen, it won't kill the process when you logout!
An easy work-around that doesn't require configuration file changes!
Sure *some people* will complain that it's a risk, but hey, it gets you moving forward again and you can close that ticket.
Technology -- No Place For Wimps! Grateful Dead and Jerry Garcia Chatroom -- http://www.wemissjerry.org
"It ain't what you don't know that gets you into trouble. It's what you know for sure that just ain't so."
No, it is not more complicated than what I said. A typical session leader does not kill the other processes in its session (or even process group). At some point -- say, because the login shell (which was the process group/session leader) exited -- the kernel sends SIGHUP to all the processes in the session, and the default handler for this terminates the processes in the session, and thus the session.
How is using cgroups an improvement over the POSIX way of doing things?
Yes it is. It is up to the session leader to handle the session. If you're going literal on me, I'd ask you nicely to point out where in the standard it says otherwise.
And cgroups are an improvement because they finally have one overarching system to classify processes, with a unified interface, and resource control for the entire group. Isn't that self-evident?
"I know I will be modded down for this": where's the option '-1, Asking for it'?
good grief. if all your scripts of 10 to 20 years are without any modification in any way, that's future proofing in the extreme. (or no updates at all)
Yes. UNIX: FUTURE PROOFING IN THE EXTREME. That should be the fucking slogan. Only total fucking newbies don't think that's a dramatically compelling feature.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
But now that nearly all modern CPUs have been infiltrated with side-band chips (see "vPro" and "SIMFIRE" etc...) it is extremely difficult to put together a trusted computing platform.
So what? I don't use computers in my secret plans to rule the world. I keep that stuff offline, in a safe protected by pyrotechnics. Or at least, that's what I would do, if I were a fucking supervillain. The rest of us don't need to worry about spy chips. What we need to worry about is creeping fascism. It's been possible to spy on computers forever. What is needed is to root out corruption, and keep rooting it out, because weeds take root whether you want them to or not. And the seed will always be there so long as people have unmet needs, physical or psychological.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
The standard says "If the process is a controlling process, the SIGHUP signal shall be sent to each process in the foreground process group of the controlling terminal belonging to the calling process." No action required by that controlling process, or even discretion about it.
No, it is *not* self-evident that cgroups are an improvement for login sessions. For virtualization, sure, they make sense -- but I am unconvinced that the same kind of resource quotas make sense for login sessions.
Then we will have to disagree, because I like being finally able to hedge off a part of my processes and manage their resources in ways that login sessions and process leaders don't provide.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
I can understand wanting to apply resource quotas to some subset of processes. What I don't understand is tying that to a user's interactive session, much less using additional mechanisms to reproduce sessions/process groups, as systemd is doing in this case. It seems to me that you're defending using cgroups, which is only coincidentally related to systemd's behavior.
The thing is that there are already facilities to do this in *nix land that have existed for a very long time (why else do things like nohup exist). This new tech means now processes have to do *yet another thing*. Imagine 10 years down the line with processes abusing systemd-run, and someone deciding to standardize a new behavior that requires wrapping systemd-run, since it was so abused. That's the absurdity, software is abusing the facilities available today, so they put in another block that invites software to abuse more facilities to overcome that, rather than pushing back on the software to *STOP ABUSING FEATURES TO KEEP RUNNING THAT SHOULDN'T*
XML is like violence. If it doesn't solve the problem, use more.
The problem being that after years of struggling with unsupported OSes, RedHat managed to represent a hardware vendor friendly option that did pretty much what we wanted. Fork and move on is not something the hardware vendors (and by extension, large IT organizations) will go along with you on. This is beyond open source. RedHat managed to sway Debian and by extension Ubuntu didn't have the will nor even did SuSE. So there are zero supportable new Linux distros that provide the non-systemd experience. This is a big problem in and of itself, but also an indicator that there really isn't meaningful choice in distributions as they all just copy RedHat's moves now (even though Ubuntu, by install count far outnumbers them, RedHat still has the muscle by virtue of revenue).
So RedHat now starts moving on to chase markets currently out of reach for them, with an effectively captive audience of their original market, telling them to shut the hell up and deal with it. It's a lot like Windows 8 throwing their traditional desktop users under the bus for the sake of trying to get them into the tablet/phone game. Just like windows 8, I see a *lot* more customers running RHEL6 than I saw running RHEL5 this far into the next-gen's life. I've also had to work around all sorts of breakage with systemd (there was an upgrade process that did a yum update as a service. One day a systemd update landed, and the upgrade process got killed when it tried to update systemd because old-systemd would kill off the update procedure in the process of the systemd update being applied).
XML is like violence. If it doesn't solve the problem, use more.
If non-buggy software is running in its own process group, that's a pretty darn good indication to a competent sysadmin that it is meant to hang around.
That GNOME software is buggy should be news to nobody.
Apparently you know nothing about the principle of least surprise.
What is more obvious, more common, and more widely understood: "nohup foo &" or "systemd --magic-grok --yes-i-want-this-to-stick-around --user --of-course-i-mean-user foo"? Which one has been the standard way to keep things running after a login shell exits for about 40 years?
Erm, no, I'm coming at this from the other way: because I now have a way to apply resource quotas to a group of processes, including putting them in their own scope that's no longer dependent on an interactive session, I don't mind that ending an interactive session kills all processes except those specifically exempted.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
You never log out of your cellphone. You either lock the screen, or shut it down.
Why is it okay to break the 40+-year-old method for preserving a process after the login shell exits just because there is an orthogonal mechanism for applying resource quotas?
If you mean the current gnome that was deliberate on the part of the gtk+ developers since they decided it was not important and to rely on hardware acceleration instead of writing something that would work properly without hardware acceleration. If you mean otherwise you are lying.
Pointing out your attempts to pick fights is addressing your actions and is not a personal attack.
The systemD teams reminds me of "the team".
You know the one that keeps submitting those changes Friday at the end of the day, so that everyone coming Monday discovers that the build has been broken. So you spend the next two days chasing around things that they broke. Meanwhile the managers are wondering why the project is falling so far behind.
I think in the long run Linus is going to take it over and do something similar to git.
So you're saying that change through political means will result in a better outcome than technical ones?
Good luck with the upcoming election, I've got a hunch Trump's gonna win :)
I know you're being facetious regarding "secret plans to rule the world" and it made me chuckle, but let's bring it back down to earth with a more realistic example:
Here in the UK the home secretary is trying to pass legislation that would give the local police unrestricted access to all home internet access records kept by the ISPs. I can see the logic as to why they want this power, but in my opinion it is too much power for the national intelligence agencies, let alone the local police. It's mind boggling to think that a Cold War (risking MAD of all things) was fought over the right to "privacy" and "freedom" (or at least that's what came out of the propaganda machine in the West) and there was much ado about protecting the privacy of library book loan records at the time, which is in my opinion the simplest comparison to the privacy of online internet records.
So, anyway, while I have written letters to Ms May and my local MP, and I have voted in all of my elections, there is actually nothing else more that I can do. ...except implement technical means to circumvent the snooping: just using a very simple VPN to another country allows me to "shift jurisdiction" as to who has my internet browsing records, and the worst case is that it is now a different police force than the one that can barge into my home at 5am with their weapons drawn.
Of course I'm now technically breaking the law, but in my case I think my actions are just. But even that's not really appropriate for the end game, and I fear that after pushing on for some time trying to change the system through peaceful lawful means, my only other option will be to leave and find somewhere else to live. There is no way a rebellion here in the UK could succeed, and I've read too much to know that even uttering any desire to start one is a very bad idea. The whole situation sucks.
I have many linux systems. No systemd in sight. Never will be.
Consider it my vote of no confidence.
It's clear you have no idea how the principle of least astonishment works.
But that's exactly what systemd does! It gives you tools to run these processes in their own scope, so that their resources can be properly managed, and the admin knows that these processes are meant to hang around.
If systemd needs a special tool to know that a process which has been detached from its parent is meant to hang around, it's not very smart.
If Poettering can't make pulseaudio terminate on logout like a process should, maybe he should fix that.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
No they will do what they have always done and specify an older platform that works.
From your comments you do not appear to be very familiar with the *nix platform at all - your terminology of "service" seems to indicate a MS background so I suppose that makes sense. Please learn some of the subject matter before delivering such a stream of "corrections" and ignorant lectures in the future.
The X lie was especially hilarious as if all you know about X is from reading what Wayland fanboys who have never run either X or Wayland have spouted in ignorance.
How will you keep TCP connections from timing out?
cgroups are an improvement because they finally have one overarching system to classify processes, with a unified interface, and resource control for the entire group. Isn't that self-evident?
cgroups are good, but they are not a systemd feature, they are a kernel feature. They are manipulated with short, simple commands (creating and destroying them is done by manipulating files and directories) and there was no need for a whole new daemon to implement them. They could have been implemented easily enough in the init scripts.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
You may be a bit confused. What daemon? I'm talking about good old ftp on the command line. I connect and start a download that I expect to take 12 hours or so (huge file or slow server, doesn't matter why). How is the system going to save state such that when restored it's still connected and downloading?
For a service, there is no periodic wakeup. It just needs to block on accept. When a connection comes in, the accept call returns.
That doesn't even begin to make sense. There is nothing more or less manual about systemd and it's not going to do anything for security (but potentially introduce new holes).
Systemd, you've solved a problem that was never really much of a problem.
“Common sense is not so common.” — Voltaire
I just prefer well designed systems. Init may not be the best, but systemd is a step backwards.
Linux long ago replaced all of those in most applications. I have yet to hear of anything systemd can do that wasn't already being done.
Because the alternative mechanism is better, IMO.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
The "alternative" mechanism you describe just isn't an alternative, it is orthogonal to the behavior under question. Again: Why is it okay to break the thing that has worked essentially as long as UNIX has existed just because an independent mechanism (for doing something entirely different) exists?
Funny, I've not seen this difficulty in development. All systemd "contributes" is yet another variation that has to be accounted for.
For example, the subject of TFA. Until systemd came along, there were a couple good ways to not get terminated on logout. They worked across *BSD, Solaris, Aix, Unicos, and the many flavors of Linux (perhaps Mac as well). Now, not so much.
New system options
1) FTP command line registers with systemd that's its going to be doing a download over the next 12 hours from a slow server.
2) You run FTP from inside systemd telling the process manager this FTP is going to take 12 hours
3) After you start the FTP process you notify systemd
etc...
You have heard. Process management.
Correct. systemd is part of a broader system that is replacing POSIX. No one is arguing that POSIX never existed. Nor is anyone arguing that systems that don't adopt won't be left behind. As for Solaris and AIX they both had process managers. Not getting terminated on logout was up to the process manager not the end user.
You likely don't log out of your cell phone.
As for stopping process that what iOS does for most to conserve energy. Only those systems entitled to run in the background are allowed to run anything and even there the system makes the choice not the application.
RedHat managed to sway Debian and by extension Ubuntu didn't have the will nor even did SuSE.
Horseshit. Stop acting like this is some big conspiracy. The pages of pro and con discussion are still on the Debian wiki. Systemd was selected because it was technically better than upstart, not an unholy maintenance nightmare like SysV, and had more features than OpenRC.
Systemd and cgroups are fixing things that have been broken since the 70s. Usably broken, I grant you, and well-known, but still fundamentally flawed. We have some forty years worth of technical debt accumulated on top of these systems, and frankly I'm surprised that they haven't broken more things. We should not pretend that there are not logical reasons for the changes nor that they are not subject to public scrutiny and input. It definitely looks like a big problem though, if you ignore those factors.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
Ah. Those were the only choices, were they?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
So name one.
Go back up and figure out what we're talking about. The sub-topic here is saving state.
What the fuck do you actually do for a living? The way you're talking about this stuff, I'm starting to suspect you push a broom for a living and computers are just a hobby.
You're going to have to be more specific because I have process management now without systemd.
Pretty much yes they were. In theory there might have been hundreds of choices. In practice there were just a handful.
Same example I've given you. A depends on B depends on C depends on D depends on E. C crashes and the system is able to recover. What does the operating system do with A, B, D and E to get them aligned with the new state?
I expect most admins would prefer the default behaviour to be to clear up left over processes and services when the user's last session disappears.
This is the problem. You, and the systemd maintainers, know your use case and 'expect most admins' to have the same set of problems and expectations. I imagine the change in default will be very handy for people who maintain computer labs, where the computer is only expected to be doing something if someone is physically present at the console. Very handy if your computers are only used to deliver content to users.
Maybe that's even a majority, now that we've reduced "computers" to fancy televisions. To people who've been around longer and actually use the computational power of the system, this change will break a lot of existing scripts and functionality. Those people are going to be inconvenienced because people who maintain interactive-only systems can't be bothered to disable persistent processes on their own, or to type "loginctl disable-linger someuser" for people they don't trust with unattended processes.
Incorrect. Solaris worked much like non-systemd Linux works. Dettach from the controlling tty if you want to keep running. Either in the program itself or use screen or nohup to do it for you.
All systemd is doing is adding an incompatible behavior.
... and all your process are belong to me.
I always thought child processes were killed when the parent was killed, anyway, unless it was deamonized with nohup. I dont know whats new here. The behaviour can be disabled, so if you dont like it, just disable it? Whats the big deal.
Bravo. All these people calling you a fucking moron can shut the fuck up now. You are quite capable of proving it yourself with one short sentence.
Since it would have been easier to name one, I conclude you have no idea.
Can anyone say zombie process? Its long been the case that if you kill a parent process, children get killed to. Unless, you demonize it with nohup. You can also disable the behaviour in systemd.
systemd is overall a good concept, and is not some monolith. Its a good idea to have the init system be a IPC standard using DBUS, the kernel creates system event messages on dbus, you can have an init daemon listen for these messages and have whatever logic you want in there, if you want to start a process when the network card goes up, you watch the dbus for a network card up message from the kernel, when recieving this you will start your process. When a process is started, that can be announced on dbus as well. The possibilies, modularity and decentralization and configurability of this model far exceeds that of the old system. Highly modularized and decentralized, even more so than the older init model. The old system V init is still supported, so if you dont like the new style, you can always set your services to start with a traditional sysV init script. So whats the problem?
Can you name a case where that condition is more than theoretical? Preferably one where the correct answer isn't one script starts them all in order?
The closest thing I have seen of that nature is something depending on the database. If it gets a connection error on a query, it tries to reconnect. If it can't, it serves an error message.
Sure tons of enterprise apps. For example you have an app (A) tied to a database (B) tied to a virtual slave (C) copying information to kafka (D) which is being picked up by Hadoop process (E1) which then does batch transformation (F1) which then at the same time D is picked up by Spark (E2) which creates RDDs (F2) which then creates windows (G2) both F1 and G2 feed Elastic (H).
C crashes who needs to be notified and how?
I understand what saving state is. Reread the answer.
A multi-user system shouldn't allow unpriviledged users from consuming resources indefinitely. It's too easy to starve a system or resources.
Errr, setting appropriate user resources is the way to do this, and there are various methods to do that. Killing everything isn't, and there are any number of things you'd want to leave running so that when you log back in you log back in to the same state. This is the kind of moronic nonsense you get when developers override system administration practices that have been around a very long time for a reason.
Wouldn't it be better to save state on logout and restore on login?
Why?
This would provide the balance between saving system resources and allowing a user to start off where they left off.
What resources do you think you're going to be saving here? There are various ways of allocating resources to a user and they then use those how they want. restricting this to log on and log off is incredibly stupid.
Of course applications would need to be aware of state saving. Is there already some sort of API for this?
Jesus Christ. We don't need an API, or to add systemd support to anything because it ALREADY FUCKING WORKS.
Eh. Wrong checkbox. That post was mine, if it wasn't obvious.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
How does this have anything do with management of allocation of resources to users? Isn't an interactive session just as capable of "consuming resources indefinitely" as a running detached process?
Of course. We have this fancy little thing called cgroups and limits.conf. Any argument that the system is somehow "safer" or "more secure" because a process can't keep running after logout is so ignorant that you have to immediately realize it's not possibly the real reason for this change. This is a change because of the incestuous nature of systemd and GNOME.
In a shared desktop environment you often only want the process of the currently logged-user and authorised daemon tasks. Anything else is consuming CPU cycles that are perceived as getting in the way of the person using the system.
As to resources being saved: CPU, memory & power. There are an increasing number of offices that will put their machines to sleep at night, once idle after a certain period. If you needed you process to be working outside of your session, then you probably want to be running this on a server or stay logged in.
What "ALREADY FUCKING WORKS"? Applications already receive notifications to save their state when the user is being logged out or "Windows style" simply loses anything that was active without notification?
Jumpstart the tartan drive.
I'm sure the Debian package could have handled things better such as warning the user or asking them for the behaviour to adopt. But I'm sure it's not the first time a package has locked itself down or changed a default in a way that improves stability / security / performance or whatever and has required some workaround to deal with. I don't see people running long standing tasks after they log out of a PC as being a major use case and therefore it makes sense is the default doesn't allow it to happen.
There's a program called screen. It's been around for decades. Used to be we'd lose out connection on our dialups, then firewalls used to get us due to inactivity. Someone wrote an ingenious program called screen. It'll survive those things. Just run whatever you want in that window. You can then detach and later reattach. No problem. The bummer is some of the key bindings conflict with Emacs.
BTW, this isn't a "system D" problem. It's a change to how the shell works. It's been there for years. Stop being systemd haters, get over it already. Man up and learn it. I did and I have over 30 years of working with the old SYS V and BSD. If you don't want to learn it because it's too hard (as if it's too hard), do something else. There's plumbing, electrical, house framing, welding. All of those fields need a lot of people. You'll have to learn stuff there as well, however. Some places require the old Union progression. Journeyman, Master, etc.
What the ... ?? Is this a troll? You can't be serious. C'mon - what the hell is this shit?
Yes it is a troll, and the same usual suspects crawl out of the woodwork on here every time when systemd fucks something else up. Anyone who has done system administration for any length of time knows that sessions != individual users for very good reasons and anyone who tries to equate the two hasn't the faintest idea what he's talking about. We'll eventually regress to single user systems.
1) FTP command line registers with systemd that's its going to be doing a download over the next 12 hours from a slow server.
Jesus Christ..............
And tell your system you want that. You can change default config on Unix.
We have never needed to tell our 'system' that before. Plus, there are a long laundry list of commands (errrrr, everything a user has permission to run anyway) that a user can run that can be persisted. To have to 'register' them all is idiotic. Sessions != [necessarily] individual users, for good reasons, and to try and equate the two is just out and out stupidity. A system that restricts based on logins and logouts is totally broken.
So you're saying that change through political means will result in a better outcome than technical ones?
You can't win technically unless it's with overwhelming technological superiority, especially against overwhelming numbers. We have to make a better world, because making a better fortress of solitude is harder than making a better bunker buster.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Because they are remote headless systems and I don't need to stay connected to them in order for them to do the stuff I want them to do?
Wow. Why ever would you want to do that? \sarcasm The systemd model is that everything you do starts after a login and ends with a logout. For those of us with experience this is stupid beyond words.
Probably quite a bit because no-one does any research on the issue before winding their neck out and making random ignorant statements especially as its just a configure change not a functional one.
A better suggestion would be that before systemd developers start making changes to default behaviour that has been around for decades, for good reason, that they actually work out why said behaviour was that way to start off with.
Sessions != individual users and login/logouts. Any system that does that has just gone backwards.
"systemd 230 now finally flipped the switch and finally by default cleans everything up correctly when the user logs out. But we do so in a very conservative way actually:
Which was done because the imbeciles couldn't fix Gnome and clean up its shit on exit. 'Very conservative' my arse. You've got to love the slippery political statements they spew out when they fuck up.
a) there's a compile time switch to turn this off globally (--without-kill-user-processes, not used in Fedora)
Wow, recompiling. Really helpful.
b) there's a runtime switch to turn this off locally on the system (in logind.conf)
Not default, expected behaviour.
c) there's a way to opt-out invidually for each user and each task from the cleanup logic, via systemd-run/loginctl linger. This operation goes through PK, and thus can be configured in a more strict or more open policy, depending on whhat the admin prefers.
Yay. I get to run through all the commands in /usr/bin et al and explicitly tell it I'd like them to persist - even though I'm already explicitly fucking doing that with nohup or something else because that's what those commands are for.
Correct. systemd is part of a broader system that is replacing POSIX.
ROTFL. Oh, right. systemd gets a new purpose in life every week. So, what happened to the init system then?
C runs under a restarter and the database re-connects on ENOTCONN. Done.
The restarter can be as simple as while true; do run; done. You'll probably want to echo something to a log in the restarter just so you can see how often it happens.
Then why in your steps is there no save or restore of state?
I remember when file-and-print servers were a big deal, but them I'm old. Nowadays, all the servers I work on are effectively single user. Oh, they'll do work on behalf of thousands or millions of end users, but none of those end users have sessions or accounts on the servers, they just send some bytes to port 443, or whatever port the server has open for the API it serves.
At most, there'll be one human actually logged in, to troubleshoot something, and if he needs nohup then nohup needs to work.
Socialism: a lie told by totalitarians and believed by fools.
which means that the job of terminating the session when it's finished belongs to, err, umm, the init daemon.
No.... the job of terminating the session is The Shell's job. The session is terminated when the shell chooses to exit; Init is only responsible for starting/respawning processes and possibly passing signals through to the direct child process. If the user exits through means such as Hanging up their modem connection, then it's the kernel's job to signal hangup (SIGHUP).
And the Shell is responsible for Job Control: exiting the shell's child tasks.
The Init system or system daemon is Not responsible for Job Control; this is managed by tasks running under the user's identity.
yawn... Pen and paper used be the way to do things so whats your point?
Yawn..... It still works.
if you don;t like tightening up security on your systems, thats up to you.
What the fuck has this got to do with security, from someone who obviously knows squat about it?
I presume most of the anti are like the manual workers of old who were worried that computers would take away their jobs and in this instance systemd is taking away manual tasks from you.
Which has no relevance to what's being discussed. Bloody hell........ I'd recommend you stick to the recommended dose for whatever your meds are.
Same example I've given you. A depends on B depends on C depends on D depends on E. C crashes and the system is able to recover. What does the operating system do with A, B, D and E to get them aligned with the new state?
I've never encountered this scenario. You know why? Because it's hypothetical nonsense.
One, no one has credibly stated that screen/tmux are left alive. There are people reporting that screen/tmux sessions are killed.
I do.
On a stock Jolla phone, SailfishOS has the same clean-up option activated that the Debian systemd packager has activated in TFA.
If I type:
ssh jolla -t -- su -l nemo -c "'screen'"
My screen session survives without getting killed.
(Note:
- nemo is the main user on a Jolla smartphone.
- su starts this screen session in its own separate session (in a different CGroup, and all the various non-POSIX/Linux-specific seats & namespaces & containers, etc.)
(there's also a systemd-specific way to start a shell in a new sessions, using some "machinectl shell" construction, but su does the job and is more compact)
Or you, know, you could stop complaining on forum, turn the damn option "off" in Debian-Sid like virtually every single other distribution does, and file a ticket on debian's bug tracker to ask the packager to make back the default not to clean-up the session like everyone else is doing.
(and BTW, what are you doing complaining about Debian- Sid ? It's supposed to be unstable and rough edges by design. Things breaking under Sid like this are supposed to be common. Use some LTS distro if you want peace of mind).
Or if you want to go the systemd route, I would encourage you to read a little bit about the various "--user" option, and ".service" (and/or ".timer", etc.) syntax.
That will help you cover most of the "need process in the background" situation that aren't covered by screen's "I need my long-running computation to survive between ssh remote sessions".
(e.g.: for any end-user daemon).
I've managed to convert most of my background tasks this way on the various systemd-powered installation I've been using (openSUSE Leap 42.1, openSUSE Tumbleweed, CentOS 7, and Debian's own Jessie release which doesn't have the "KillUserProcesses" toggle set as mentionned for Sid in TFA).
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
The point of systemd is process management. To give to Linux what Solaris, Digital Unix, AIX... have for big box. To give Linux what mainframes have (or at least some fraction of it) since Linux is replacing those use cases. And on the desktop to give Linux what Windows and OSX have.
One thing that all of the non-Linux UN*X systems you mention have is the notion that if you run some process under nohup, it'll continue running after you log out. (Tested on OS X 10.11.4 and Solaris 11.)
What some people are complaining about with this configuration change to systemd-logind is that, with that change, if you run some process under nohup, it won't continue to run after you log out, so there's one thing that Solaris, OS X, etc. have that you don't have.
Anyone who's ever been disconnected from a server 2 hours into a 3 hour process knows the importance of using screen.
...and would also know not to use Debian Sid on a critical server, BTW.
And even on distro with auto-cleaning-up activated in logind (e.g.: SailfishOS on Jolla), screen DOES work as intended as long as you care to correctly start it in its own seat/session/namespace/container (and all those non-POSIX-y stuff that Linux handles and that systemd manages)
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
Actually it stems not that much from systemd itself,
than from Linux being not POSIX, but having lots of extensions over it:
seats, namespaces, cgroups, containers, etc.
Systemd simply tries to manage them (there's no other tool that attempts to do it right now).
And BTW, quite the contrary, this kind of strict compartmentalization actually enables you to have *multiple* users using multiple *seats*.
E.g: having 3 users each running their own desktop environment on the same workstation, as long as the GPU has enough monitor outputs and enough USB keaboards and mice are plugged in.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
You could have written a far shorter sentence that would would have listed something useful that systemd actually did.
Why do you think there no solid reasons for this new default. It is something somebody told you, or are you just presenting what you imagine as facts?
Th reason for this new default is because Gnome wasn't cleaning up after itself and no one could be bothered to find out why. Killing everything after logout was the only fix they could find: https://lists.fedoraproject.or...
and i posit that the security of knowing what is legitimately running on my system after log out is reason enough.
It's all about security now - from someone who doesn't know shit about it. The reasons for this farcical piece of nonsense change every minute. The initial reason is because Gnome couldn't clean up after itself.
This is hypothetical tripe where you won't be able to provide one single real-world example. Repeating it won't justify anything, alas.
Only the process manager has the global knowledge of the competing demands to make intelligent choices about resource allocation. Given competing demands for a system to work well intelligent choices need to be made about what should be running when. That's systemd's job.
That is utterly meaningless and simply shift the goalposts yet again as to why this change was made. I've lost count of the number of reason changes we've had. Security, resource allocation, wind blowing from the east........
no user process will be killed on exit/logout if the user have told the system not to.
Why would I need to tell the system? I didn't before and sessions != users.
A better person than you would be ashamed and admit their error and ignorance, rather than lamely accusing me of bad faith just because you can't answer the question.
"We have to make a better world, because making a better fortress of solitude is harder than making a better bunker buster."
Amen to that!
Let me make yet another attempt to explain it to you in simple terms: Neither you nor Poettering are king of the world and systemd is not a throne from which you get to dictate terms. Neither he, nor you, nor anyone else gets to make extra work for us (now and going into the future) by breaking the way things function and telling it that it's on us to manage two different and incompatible versions of the same code where before we had one set of code that worked fine.
>
Bullshit dictatorial attitudes like that is why I have never voted for a Democrat, why I will be voting Libertarian this year, and why I will be deliberately uninstalling systemd from my machines going forward, both at home and at work.
https://bugs.debian.org/cgi-bi...
says "The option has already be[en] reverted in the packaging git."
A Free, fast personal organizer for touch typists: onemodel
Replace well-known things that are not broken
Yeah stopped reading right there. I mean it's not like there haven't been multiple attempts to fix linux audio and multiple attempts to replace init in the past. It's sad that when something finally sticks that people jump back on the "change for change's sake" or "it wasn't broken" excuse blind to the many many use cases that the old way didn't support because you think the OS should only ever work in the specific way you personally use it.
Yeah it's almost like they need to give you the option to configure this behaviour. ... Oh wait that's no where near as fun as just complaining about a problem already solved.
You don't understand anything. Educate yourself by starting here: https://en.wiktionary.org/wiki...
People already did the work to keep their processes alive after their session leader exits. systemd is now breaking that work, apparently because GNOME's developers cannot figure out how to fix their own bugs, and must rely on systemd to clean up the cow droppings they leave all over the place.
nohup is only one way to perform the steps that allowed a process to keep running after the user logged out. It isn't hard to do the same things within a program when and if it was necessary. systemd has broken programs that do that.
For example, take a daemon that has command-line switches to make it check its configuration files for obvious problems versus running in the background. With this systemd change, the only fine-grained way to make it work the way it was intended was to add a lot of command-line noise to places where it is started in its daemon mode. The global and per-user switches will leave buggy software still running when the user logs out.
The other Unix slogan mentions re-implementing Unix, poorly. The systemd tools seem dead-set on living up to that one.
You don't understand what state is. Re-read your steps. There is absolutely nothing in here about how state is saved.
There was basically a choice to be made:
(a) Fix bugs in software that left processes unintentionally running past logout,
(b) Allow users to opt in to unconditionally killing processes on logout,
(c) Interactively ask users which process groups to keep, or
(d) BREAK ALL THE THINGS.
Only an idiot, an asshole, or an arsonist chooses (d), and I am inclined to think it's one of the latter two when they admit to knowing it will break things.
OS X and iOS does not save state the manner required I'm afraid so I don't know what you're talking about there. It's a ridiculously complex and rather silly thing to do when you can just persist processes when needed.
Some people are saying that this new behavior is killing screen. Can’t systemd be configured to automatically recognize screen and not kill it?
The principle of least astonishment is following systemd policies.
Policies which change every week, or change based on Gnome having bugs they don't want to fix ;-). That's the exact opposite of least astonishment, actually.
You have heard. Process management.
Which depends on kernel features. Why do I need systemd again?
The problem with your approach is that it doesn't fix the problems that this change is intended to address.
With KillUserProcesses=no, several GNOME packages keep processes running after the user logs out, when those processes should have terminated at the same time the user logged out. With KillUserProcesses=yes, systemd cleans them up instead. When people file bugs about the GNOME packages being buggy, maintainers will probably close them because KillUserProcesses=yes is the intended (and only supported) use case.
The people who expect standard behavior are hit twice: Once by having to specifically ask for that bog-standard, well-documented, entirely reasonable, behavior -- and again because some software expects their bugs to be worked around by the non-standard behavior in question.
This is the kind of convoluted crap I'd expect really, which again, has no real world basis because those sensible enough don't run something this stupid. Those that do run [very] unstable applications ;-).
You restart C under daemon tools or something, anything will do, and then reconnect the database. You also want logs to output when this happens. Creating a complex system to manage this is just insanely stupid.
I don't see people running long standing tasks after they log out of a PC as being a major use case and therefore it makes sense is the default doesn't allow it to happen.
You don't do any system administration on servers then.
I like being finally able to hedge off a part of my processes and manage their resources in ways that login sessions and process leaders don't provide.
Which.........you haven't managed to back up, and totally misunderstood what POSIX already supplies.
Because the alternative mechanism is better, IMO.
Alas, simply writing this over and over this won't make it true.
Eh. Wrong checkbox. That post was mine, if it wasn't obvious.
So you were wrong, can't admit it and have nothing to say? Errrr, OK.
The manual is rather incomplete and behaviour changes every other commit.
Gentoo really isn't much better. It's not as bad as Slackware, but Gentoo is still a niche distro, and its whole compilation strategy is wasteful for anyone but hobbyists.
I ran Gentoo for a long time and if you want to upgrade your distro sensibly, at this point recompilation is the only sensible option ;-).
Not a convincing argument I'm afraid.
.....and OS X also implement nohup properly ;-).
According to Poettering this is just a 'misunderstanding:' "The changed default here is really about defining the lifecycle of unprivileged code by privileged code, and thus about security" Logging out is not meant to invalidate your credentials of running code on a system - its just as arbitrary to make this the default behaviour as it is to automatically kill user processes at 00:00 or after 30 minutes of inactivity - I am sure this would also "improve" security. ...if the user is removed from the system - then, yes kill his processes.. the runaway processes argument is bogus - a runaway process is equally bad whether you are logged in or not...
If any background processes are running, just pop up a dialog on logout and ask if they want them killed. No need to make assumptions.
# make clean sig
> If they want Potterix to work differently, they should put out a distro.
They have, it's called Red Hat Linux *ducks*
Again and again I've heard people like you suggest that Slackware is a replacement for a modern mainstream distro like Debian. Others suggest Gentoo.
Well, the reality is that neither is sufficient.
Slackware is, to put it politely, very primitive. While simplicity is a good thing, Slackware takes it to the point where it becomes a liability.
When using Debian, it's possible to get a full-featured desktop or server set up with very little effort, and this can be done quickly. Thanks to sensible defaults and a practical installer, manual configuration is kept to a minimum.
Frankly, what we need even more than Devuan is a fork and re-structuring of the RedHat ecosystem. Unlike .deb-land where the more dynamic Ubuntu is a downstream of the stabler Debian, the "upstream" of RPM world is the bleeding edge Fedora where this crap began with, not the more-enterprise-stable RHEL.
The unfortunately-named CentOS ("Community ENTerprise OS") is an intended binary-compatible rebuild of RHEL, so it really doesn't have the freedom to change anything at all and remain within its goals (even before it became part of RedHat). What's needed is a sane, more stable fork of Fedora.
It could be done... Start with CentOS 6 as a baseline, and bring this up to date with CentOS/RHEL7 tech (kernel, glibc etc.) using Scientific Linux 7 as a concept for rebuilding. Bring in stability features, while leaving out as a requirement what's generally a poor fit for a server, such as systemd as /sbin/init, NetworkManager, etc. It doesn't mean they're not there, but they're not forced. systemd can still run, it just isn't PID1... It's a service launched via script just like any other service manager (such as xinetd).
From there, build a server-quality distro that's broadly (generationally) compatible with the major release of RHEL, but is free to not do the stupid stuff.
RPM-world needs and deserves a new, server-class RPM-based distribution.
Hire a Linux system administrator, systems engineer,
Yeah, that's not going to happen lol
"First they came for the slanderers and i said nothing."
That reading is about as correct as your understanding of systemd, taking into account Dunning-Kruger.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
I don't. Thankfully my current distro, Mint, is one of the holdouts, even as Debian and Ubuntu have caved to the systemd madness. But how long are they going to hold out?
I just don't get one thing. Let's look at OS that called Windows. It has two logout options. One to logout completely and kill all user processes and another that you can use remotely to keep your session and everything. Why do we have all this debate?? Linux session is what? Different by nature? Pardon my English.
Saving and restoring of state is something the process manager handles. Once the process manager knows what's needed it can decide how best to handle the problem.
Those aren't steps BTW they are options as indicated.
Why not? Why should Unix be forever unable to handle scheduling and resource contention in intelligent ways?
https://developer.apple.com/li...
Saving and restoring of state is something the process manager handles.
You *really* don't understand what state is.
You still don't understand what state is. Oh, and nohup works on OS X ;-).
To clarify, forcing applications to support state saving is *not* a solution because it doesn't preserve everything - TCP connections for one, as has already been pointed out to you somewhere above. We already have a solution - nohup, screen, tmux etc.
;-).
Nohup still works on OS X
Because it add a huge amount of complexity, requires application support and we already have simple and well established practices where these lessons have been learned. Decades ago.
What "ALREADY FUCKING WORKS"? Applications already receive notifications to save their state when the user is being logged out or "Windows style" simply loses anything that was active without notification?
Jesus titty fucking Christ. We background the process on logout and use the resources the user has already been fucking assigned anyway. Simple. No complex saving of state which wouldn't work anyway if you're using network connections. No new APIs. No new complexity. Done. Sorted.
Why would I need to configure behaviour I've always had?
Everyone would have been happier if one of the other solutions had panned out. The Linux community isn't used to someone just winning.
Not sure on what basis fucking up time and again is called 'winning'.
I don't see people running long standing tasks after they log out of a PC........
Bloody hell.
You obviously have no understanding of POSIX, no understanding of what Linux/Unix systems have had for decades, are actually describing a different solution as opposed to an alternative one and have shortened answers to "Because it is better" once you've been shown to be shooting your mouth off?
Sounds like a typical systemd argument to me.
The sensible arguments just keep getting better :-).
So perhaps screen, tmux, and nohup need to be modified to, on systems with systemd, do whatever the appropriate magic is necessary, just as is done on OS X.
Bloody hell. That would mean making sensible decisions and actually having a clue.
There is no change in how systemd handles either processes or logins with this change except that it purges processes that aren't explicitly allowed to continue to run.
That's an......interesting and political way of phrasing this. Unfortunately this is still a major change to default and expected behaviour even if you'd written it in Chinese ;-).
This is conceptually very similar to how things always have worked
No, it isn't.
....It is simply the way to explicitly tell the system a process is allowed to survive that have changed.
Squirm, wriggle, bullshit, bullshit. This means absolutely nothing. We had a way of telling a process to persist - it was called nohup and it worked very well. There is not one single good reason why this has been changed.
So please name me just one example of breakage or non-contrived stuff that are no longer possible to do with the new systemd settings?
Expected system behaviour. Even when you close a RDP session on Windows it is still there when you get back. It doesn't transparently disappear. There is not one single good reason why this should have been changed. We'll also find out what system administration scripts this inevitably breaks for people in the coming weeks and months.
There are several benefits from the new way of doing things too, like being able to use some of systemd's extensive resource management options.
You're making this up as you go along, aren't you?
Just edit your scripts.
This is why Linus had to tell the systemd people to go fuck themselves when they screwed up expected and working kernel and userspace interaction.
Guys I think this Peter H.S. is deliberately trolling and is writing this ridiculous stuff just to get people angry.
There's a few usual suspects that crawl on to these threads when systemd crops up.
i thought it was very obvious, security of your system and the security of knowing what is still running legitimately after you logout.
Except that wasn't the reason. That was a reason made up on this thread. The real reason was so Gnome didn't have to be fixed on logout.
No I don't. I just accept technically superior solutions as the way forward, even if they means another way of working.
Simply saying that won't make it true I'm afraid. As Linus said, we don't break userspace or expected behaviour.
Just lock the session instead of logging out. That would be the typical thing to do with a workstation since it runs a DE of some sort.
Jeeeeeeesus fucking Christ. Hey, instead of SSHing into a server what I'll do in future is to iLO into the console or something and run my scripts directly on the fucking terminal, eh?
If you wanted to see a systemd ignorance in all of it's idiotic nakedness, read that.
Well established Unix conventions, like using unencrypted connections (Telnet, UUCP, rlogin etc) that sends password in clear text?
Why are you using nonsensical comparisons to justify your total bullshit?
good grief. if all your scripts of 10 to 20 years are without any modification in any way, that's future proofing in the extreme. (or no updates at all)
Welcome to the harsh reality of the real world called "It fucking works".
Those are some pretty strong meds you're on if you don't think that this is changing existing behaviour. It's why Linus had to swear at systemd developers about not breaking userspace. Clearly that hasn't sunk into the thick skulls.
So because this idiot can't configure GNOME properly he decides that the entire world their servers needs to stop working properly.... and that screen/tmux should be reimplemented!?
Welcome to Linux userspace development today.
This headline is completely wrong: "Systemd Starts Killing Your Background Processes By Default."
Unless you run a rolling release distro and you blindly update, you're not going to get systemd 230 without knowing it. (You could argue that it's still a problem regardless, but it's no bigger problem that Linux kernel/coreutil releases that have terminal boot errors and what not.) So this panic-inducing clickbait title is preposterous. It's nothing like how Windows 10 forcefully installs on peoples' computers with Windows 7 or 8.1 even if they deny the update.
That sort of thing makes sense on a batch system where you needed to schedule system time in advance. In the modern world where you don't have to worry about what other people are using the resources on your machine, there's really no reason for it.
Also, who uses FTP to do a slow transfer to a cloud? That's something you only do from a single-user machine.
"First they came for the slanderers and i said nothing."
What "ALREADY FUCKING WORKS"? Applications already receive notifications to save their state when the user is being logged out or "Windows style" simply loses anything that was active without notification?
Jesus titty fucking Christ. We background the process on logout and use the resources the user has already been fucking assigned anyway. Simple. No complex saving of state which wouldn't work anyway if you're using network connections. No new APIs. No new complexity. Done. Sorted.
If you are backgrounding all the process, why even bother logging out? What you are describing appears more along locking the screen than sending a message to the system that you are done. BTW MacOS X already provides a way of saving state and liberating resources, so it can't be that hard. It maybe well that the way that the way it has been implemented by systemd may not have been the best way, but there are certainly valid arguments from both sides of the proverbial fence.
Jumpstart the tartan drive.
None of those options have a single thing to do with saving state. You show no sign of understanding what we were talking about. Please Google "saving program state" and "checkpointing".
Yup, prime example of Dunning-Kruger in action.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
"Calling a spade a spade" means using accurate, straightforward language instead of euphemism. If you honestly believe that Poettering is a female body part, I question your mental health.
Because that's what happens when APIs change.
1. Create API.
2. Provide compatibility options for things that don't work with the API.
3. Set a new default.
4. New API is slowly adopted and compatibility layer eventually disappears.
We're at 3, and most of slashdot is bitching because they don't understand 1 or realise that the concept and the reasons for the change actually predates systemd development.
Right back at yer.
Because that's what happens when APIs change. 1. Create API. 2. Provide compatibility options for things that don't work with the API. 3. Set a new default. 4. New API is slowly adopted and compatibility layer eventually disappears. We're at 3....
Are we really? I'd love to know where the compatibility options are since this breaks default behaviour and isn't compatible, but then, we have a lot of raving nutcases around who don't understand these things at all these days. The problem here is that this change was pulled out of the blue because no one could be bothered to fix Gnome and no one actually has a plan at all. People are now performing mental gymnastics to justify it. It really is something to behold.
We have a lot of laughable numbskulls like the idiot above trying to claim there is some sort of grand plan and reasoned argument for this.
Parroting shows a complete lack of creativity. You posting it shows you don't recognise that. Thank you for proving the point: you're wearing the juice.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
What do you mean no batch in a modern world? Most of the world is still batch. For example the whole big data push is essentially cutting hardware costs and thus allowing for larger batch systems, going back to tape paradigms on hard drives using generic hardware. Obviously there isn't much one can do that's too intellegent other than avoid fragging with resource contention on real time.
As for a slow FTP taking 12 hours and wanting to suspend, I agree stupid use case. But I was saying that if such a thing were important than systemd should be extended to manage and schedule it.
Checkpointing is an application function. Other than notifying the application or dumping all of memory how is a process manager going to checkpoint?
winning = increasing market share.
Done really? C's lost information about D. B has lost information about the new state of C. They weren't notified in your solution. How is that done?
Thanks but I do. It is reasonable to clean up a user's mess when they log out unless there is an explicit reason not to.
It isn't a major use case. Please explain to me why it's so common that it should be the default behaviour.
I've not been able to test this myself as of yet, however there are multiple times in this very thread that state that this new change to the way systemd operates explicitly breaks tmux, screen, and nohup. I've done some cursory research on a google search and this does appear to be the case. Especially damning is this thread where it seems the workaround is to use a completely new command structure to create a long running process. If anything, the systemd team is breaking the old adage "If it ain't broke...".
Seriously; a change to the fundamental way a system handles user processes cannot be taken lightly. This new behavior is fine for a desktop machine where there'd only be a single user. For a server with multiple users that may rely on background processes to complete long running computations this very much breaks the expected behavior; and can quickly become a sysadmin's nightmare when users begin complaining that their processes are no longer staying active.
For example the whole big data push is essentially cutting hardware costs and thus allowing for larger batch systems, going back to tape paradigms on hard drives using generic hardware.
I've spent a lot of time working with big data at various levels, and I'm still not sure what this means. Are you talking about column oriented databases?
"First they came for the slanderers and i said nothing."
Obviously, C knows because it gets restarted after the crash. The ENOTCONN is the notifier for B and the new instance of C connecting to D is the notifier to D. How hard is that?
BTW, ":done" is clearly part of the do..done block associated with "while" in the script. The semicolons are the give away there.
If any further notifications are needed (they normally shouldn't be necessary in a good design), the script can fire them off.
But honestly, all of that is really just papering over bugs in C. Programs shouldn't crash.
Grab the process via PTRACE, for example.
The reason checkpointing is typically done by the program itself is that there is sufficient complexity involved that it is a rather specialized operation. There is no generalized way to save a program's state (including system state and potentially, the world's state) such that it can be restored successfully. That is exactly why I rejected it as a solution.
Checkpointing *IS* saving state. I hope you now see that not only is there no process manager that saves state, no process manager CAN arbitrarily save state.
I have worked on systems such as bproc that narrowed the parameters down enough to *OFTEN* work, but there were always corner cases.
The article is wrong. Systemd didn't change anything. Debian's config for systemd changed a default. Either option is a problem for people. But its not unreasonable to assume that users that want to have long running process know more about their systems and thus how to change them than users who want everything to stop when they logout. The change in default makes sense, and systemd is doing the right thing here.
What's a pain is the disruption caused by transitioning from a non-sensible default to a sensible default.
Your comment is wrong.
Debian didn't *intentionally* change the default. Systemd did. Debian failed to catch/care/notice/revert the change. This happened with Fedora as well (well, rawhide, Fedora's rolling unstable branch).
When you add in the systemd project's stated intent to make it more and more painful to NOT use the systemd defaults across the board (cf. https://lists.freedesktop.org/archives/systemd-devel/2010-September/000391.html), mincing words about distro-level deviations from upstream is not a very compelling response.
Hire a Linux system administrator, systems engineer,
Certainly, I did no such thing. It didn't help that Gnome drank the cool aid and started depending wherever it could. Personally I'm fully ready to dump gnome if that's what it takes.
If you're claiming I should be maintaining my own private distro, I'll just say give that a try and report back, I could use a laugh.
Yes. The issue isn't that it can't be done. The issue is that longstanding default behavior has changed. Since it appears that there's no good, solid reason for the change, people are objecting to it. Change for change's sake is bad.
So don't accept the change, it's Open Source so these things are not forced on you, otherwise you might as well be using proprietary closed-source software.
The problem being that after years of struggling with unsupported OSes, RedHat managed to represent a hardware vendor friendly option that did pretty much what we wanted.
At the time that presented good value as a short-term gain, the problem was that this meant RedHat were the ones controlling the upstream. Nobody was interested in thinking ahead with "maybe RedHat won't always act in our best interests".
Fork and move on is not something the hardware vendors (and by extension, large IT organizations) will go along with you on.
I disagree, the hardware vendors are not dependent on systemd so they don't need to go along with you.
So there are zero supportable new Linux distros that provide the non-systemd experience.
I'm not sure what you mean by "new" but Gentoo and Slackware are just fine.
This is a big problem in and of itself, but also an indicator that there really isn't meaningful choice in distributions as they all just copy RedHat's moves now (even though Ubuntu, by install count far outnumbers them, RedHat still has the muscle by virtue of revenue).
Well no, that's wrong. As Devuan progresses and we see Gentoo and Slackware without systemd the only problem is people desperately clinging to RedHat despite multiple viable alternatives.
I guess my first question is have you done mainframe? If I say something like central Kentucky horse region looks like England that only makes sense if you know rural England. Anyway columar isn't particularly mainframe. OTOH map/reduce is. The core idea of MR is to able to process records individually and the consolidate aggregates, unlike relational's table at a time. That's exactly what mainframes databases do. Or for example you can think of Kafka as a bank of tapes. Etc...
You haven't solved A and E. Which shows how hard it is. An OS has to deal with programs crashing. It doesn't matter whether you think they should or shouldn't what matters is they do.
I don't know what you mean by .done and ... I think you are responding to someone else.
Of course no process manger can arbitrarily save state. What a process manager can do is ask complex programs to save their state and for simple programs save state. It can provide services to make it easier on programs to handle saving state (like simple key value data stores).
I guess my first question is have you done mainframe?
Nope haha, just studied them. That's not entirely true, I have worked on them, but not enough to gain experience worth talking about.
nyway columar isn't particularly mainframe. OTOH map/reduce is. The core idea of MR is to able to process records individually and the consolidate aggregates, unlike relational's table at a time. That's exactly what mainframes databases do. Or for example you can think of Kafka as a bank of tapes. Etc...
That's interesting.
"First they came for the slanderers and i said nothing."
Right back at yer. Notice you're not discussing the topic you know nothing about anymore? ;-)
It's not at all hard. A and E don't need to care because they weren't attached to the dead process. They haven't lost state with their dependent or their dependency.
In case they aren't properly designed though, that's what SIGUSR1 and SIGUSR2 are for. Or any failed process causes a script to be called that tears it all down and re-starts it. Set the starter scripts to trap any abend.
You said:
Done really?
and since my only use of the word was in a one liner script, I concluded you referred to that.
If the simple program is talking to a remote server, it can't necessarily save state at all. How would you save state for netcat, for example?
If a file might change while the process is saved off, havoc could result. What do you suppose happens if vi (or emacs, or whatever) gets saved off just as it is about to write out a changed file? Then the file changes, later the editor wakes up and overwrites the committed changes.
netcat is the sort of thing that likely you would want to "save state" by recording running commands and reissue.
The best way to save state for an editor is to have them write the file out during save of state for the reason you mentioned. This sort of autosaving is for example implemented in OSX for precisely the reason it allows the process manager to decide between multiple potential editors. The other possibility would be to save state by
a) If the file is unchanged allow the editor to reload
b) If the file has changed, dump the contents. Since both emacs and vim maintain a temp file they will make the temp version available on restart.
Yes, and now the editor suddenly needs specialized code in order for state saving to not be a disaster. Seems like it would be better to just send it SIGHUP.Best solution, run the editor in screen if the connection is at all likely to be broken in mid-session. Have the system honor the well known and long documented API.
The netcat example will fail. Remember, the other end of that connection didn't save state.
Here's a cracker, Polly.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
Using Linux on servers isn't a major use case. Rrrrrrrright...........
Thanks, but you don't. You also misunderstand how this works. Logout does clean up child processes - unless you explicitly tell the shell not to, which is what nohup etc. are for. You haven't the faintest idea what you are banging on about.