Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "systemd"
Now now, chill. I'm using it as my main OS for a few years now. I know what I'm talking and this title is a bit click-baity, but this just has to go out there:
1. It's usable as a Windows replacement just fine - FALSE. XFCE4 is years old and buggy as hell especially on multi-monitor set-up, Gnome3 gets stuck more often than my Windows 98 machine used to, KDE is like a rich kid on meth. Plug in Bluetooth headphones? Well no, sorry, you have to research that online, since you'll probably need to install some packages for it to work. Did I say "work"? Well no, because after more research you realize that Debian on Gnome3 on gdm3 launches pulseaudio on its own, so you have 2 instances of pulseaudio, and one of them is stealing your headphones sometimes and you either have no sound or shitty sound. How do I know that you ask? The same way I know everything else - every time you try to do something new on any Linux, it involves a ton of research. Exciting research, don't get me wrong, but at this point it looks more like a toy than a reliable desktop computer operating system.
2. And why am I using pulseaudio? Why not alsa? years ago people were discussing on forums that pulseaudio is old and dead, yet here we are with new LTS release of Ubuntu still shining with Pulseaudio. How about several different service management systems being deprecated by new ones, each having different configurations and calling methods? Apparently systemd is old and lame now. It's a mix of 10 year old software that works badly, with a 5 year old replacement that works worse, somehow trying to live under the same roof. Does it work? Ask my headphones who sound like a fucking dial-up modem.
3. Let's talk about displays, shall we? xorg is old and deprecated, right? We got Wayland that's mostly stable. Don't know what that is? That's just basic knowledge for Linux. And when you try to install network-manager, it also tries to install Mir toolkits. Because why the fuck not install 3 display managers when you want a network manager, of which one is old and dying, one is young and stupid, and another is an infant that died of cancer?
4. Want to integrate with Google Drive? Yeah, there's a tool that mounts the drive as a local directory. Yeah only for Ubuntu. Want it on Debian? You need to compile it. Oh wait, it's on Ocaml, because fuck mainstream languages, we're hipsters. How do you compile Ocaml? Well you need to have Ocaml on your system, dummy. How do you do that? Well you need to compile Ocaml. Ok, how do I do that? Well, git clone, download and install some dependencies, configure, make... oh sorry, you're using libssl1.0.2g when you need libssl1.0.1f, nope, sorry, won't work. Want to install libssl1.0.1f? Why? You already have the "g", stupid! Want to remove libssl1.0.2g? Bye-bye literally everything that you have on your PC. But at least you got the "f". Does it work now? Well no, because you need libssl1.0.2g for another dependency to work.
And all I ever wanted was to get a fucking document from google drive (not nudes, I promise).
5. Want to watch a movie? Let me tear that screen in half and make the bottom half late by a couple of frames, because who needs vertical sync, right? Oh you do? Well install the native drivers maybe. Oh you have? Welcome to eternal Boot to Recovery mode, motherfucka!
Yeah, most of the times things work just fine. But the reason I know what those things are and how they work is not curiosity. The reason that I know the inner workings of Linux much better than the inner workings of Windows, is because in those few years that I've been using it full time, it has caused me 10 times more headache than I have ever experienced with other systems. And it's not the usual annoyances like "OMG it rebooted when I didn't ask it to", but more like "Oh, it won't work and I need 2 days to find out why" kind of stuff, because even if you experience the same thing again, it's always caused by some new shit and the old solution won't work any more.
I still love it, and will continue to use it. I don't know why really. Maybe because I'm not afraid of fucking it up any more? Maybe because I can do what I want in it and recovering will be easier than on Windows?
It's a toy for me, after all these years. And I also use it for professional reasons.
But whenever someone presents it as a better alternative to Windows, I just want to puke.52
Not sure what Linux Desktop to use? Use this handy guide:
- GNOME: when you want no tray icons, themes that break every minor GTK release, and extensions for basic features (that are buggy.)
- KDE: pretty go-Segmentation Fault
- DWM/Awesome/i3/etc.: when you feel like the time you spent learning Vim wasn't wasteful enough
- XFCE: when you want one update per decade and poor Systemd support.
- LXQt: the biggest positive is that it doesn't use GTK.
- Cinnamon: when you like GNOME 3 but you want a different menu
- Deepin: when you want a desktop with the build quality of an HP laptop.
Aren't sure whether to use Xorg or Wayland?
- Xorg: if you want to absurdly fuck up your touchscreen, pick this one.
- Wayland: if you want to screw up most of your apps, too bad; this won't work with your proprietary drivers. If only it did.
What distro to use?
- Ubuntu: if you want to break your system with PPAs, check out this one.
- Debian: when you want Ubuntu except with more out of date packages
- Redhat: when you want Debian except with more out of date packages
- ElementaryOS: wait, someone actually made a properly designed Linux UI?
- Arch Linux: the only thing that doesn't make me sick anymore.
- Slackware: "that exists still really?"
- Gentoo: when you hate systemd more than waiting 4 days to compile Firefox on every release.
... I love Linux. I do. But it is very taxing to get things comfortable for me anymore. I feel like the Linux Desktop is in a period of flux and it's painful to be a part of right now.24
Some fucker installed a keylogger on my Ubuntu laptop at home and registered it as a systemd service. From Wireshark, it's sending each keystroke to a server in France using irc. Tried accessing the server but the moron shut it down immediately. It's the last time am fucking installing code from prebuilt binaries. If I can't build it from source then fuck off your sniffing cunt. I was about to log in into a database from that machine.
UPDATE: I found the actual file sending the keystrokes but it's binary. Anyone know how I can decode a binary file?40
April 30, 2058
GNU? Linux? Ha! How ancient! Everyone uses systemd-coreutils and systemd-kernel. Nobody needs those useless old programs. In fact, systemd is so good that even Microsoft recently released their own systemd distro, and adopted the motto: “We Really Do Love Open Source This Time”. To show their love for open source, they’ve released the source for Snipping Tool under a BSD license.
systemd is super lightweight! My system uses around 600 gigs of RAM, whereas Windows uses upwards of a terabyte! I currently use the systemd-gnome desktop environment. I used to use KDE Plasma 18, but it didn’t integrate well with the rest of my operating system. systemd-braininterface doesn’t work very well with my Nvidia graphics card, so I use systemd-x11 like a hipster.
I’ve had no regrets switching to systemd. I feel bad for those BSD nerds. What a laughing stock, sticking to POSIX. Nobody writes POSIX programs anymore.
I wonder what lies in the future for systemd... I hope they fix systemd-oomd.13
I received a shiny new pair of Bose QC 35 II's for christmas -- bluetooth headphones with active noise cancelling.
They're similar to the $500 pair my previous boss lent me at work. Lower quality, but much newer, and rechargeable! and bluetooth! Yay!
I paired them with my debian machine, and... it failed. No explanation given. I tried everything I could htink of, but nothing changed. Well, okay; bluetooth came out within the last decade or so, meaning it takes some extra effort in Debian. truth. So I did some reading on bluetooth connection issues, changed some configs, learned how to use the bluetooth cli, and used that to pair and connect them. Worked like a charm.
But! No audio.
Cue more research (on pulseaudio this time) and more configs. Did some fiddling, etc. No progress. Also discovered `pavucontrol`, a gui-only (😕) utility which lets you select audio output devices, among other things. It doesn't list the headset. Nor does `pactl list`, but that does list the correct bluetooth modules. It also lists Lennart Poettering's name many many times, for all the good that does. Bragging about building something as needlessly complicated and crappy and buggy as pulseaudio? I will never understand that egotistical doucheballoon.
I paired the headset with my phone in about six seconds. I'm now controlling my phone's music via spotify on my computer. yay. Doesn't work for games or movies, but I can always just plug them in.
Yay, silence! At last!
and music! How I've missed you!
(systemd and pulseaudio can still die in a fire.)27
*deploys new VPS*
Click clack tap.. alright, done.
*notices that I accidentally made an Ubuntu 14.04*
Well shit... Guess I'll have to update that immediately to 18.04 then.
*logs in, immediately disables SSH password auth*
# systemctl restart sshd
> systemctl: command not found.
What the fuck..?
What was the command for that old init again.. >_<
# /etc/init.d/ssh restart
WHY THE FUCK IS THIS UBUNTU STILL USING THAT OLD INIT?!! Goddamit, Canonical living up to the philosophy of its Debian counterpart indeed!11
Systemd, I fucking love you. When a service crashes, let's just keep it turned off, don't restart it on your own, no need for that. That's what statefulness means, right Poettering? Such an amazing init, well worth the quarter GB of code or however much it is now. And yes I know that the unit files can be edited to achieve that. But seriously, should I really have to do that for each individual service on each individual box, because systemd can't do it on its own?
That feeling when an init system is (relatively) decent at doing everything else it absorbed into itself, yet fucking sucks at being.. a goddamn init. Good game Poettering. Such an amazing init system you wrote there. God fucking dammit man.. how hard can it be? There's OpenRC and BSD's /etc/rc.conf which are literally mere kilobytes of scripts and they do both statefulness and parallelization (in case of OpenRC anyway) *excellently*. Yet systemd can't even do that much? Awesome. Great init. I love it.
Come fucking on man...20
Today Windows notified me that I can update to the new Spring Creators Update. It didn't just start updating without my permission, which looking back should have been the first red flag. An hour later I started the update and left for classes for a few hours.
I came home and I was shocked. It updated successfully, everything was working fine, no apps were missing. I thought something must've went wrong, and just to make sure it updated correctly, I tried booting Linux and it booted without a problem. I'm currently on the phone with MS support to resolve these issues. The update must be broken, I can't see any other explanation. /s
But for real now. Windows isn't designed just to annoy you. Yes, it will update without your permission, but only if you've postponed it for weeks. I'm using systemd-boot as my Linux bootloader and Windows updates don't seem to affect it in any way, maybe it's something to do with GRUB. I've never seen Windows uninstall anything during update.
Yes, Windows 10 isn't perfect and has some bugs, but that's what updates are for. You know, the same updates you refuse to install. And whether you like it or not, Win10 is here to stay, especially since it has almost no competition for desktop use.9
Have you heard about the Embrace, Expand and Extinguish idealogy? lets think about it:
Atom/Electron (embrace) -> Atom fork named "VSCode" (extend) -> Atom (extinguish) as it was developbed by Github company.
"R" lang (embrace) -> incompatible SQL Server 2016 R lang extension (extend) -> R lang (extinguish soon).
Android -> CyanogenMod (embrace) -> CyanogenMod (extinguish) as M$ "sponsored" Cyanogen Inc to destroy CyanogenMod
Linux (prejudge) -> sponsors RedHat, Debian, SuSE, Alpine and Canonical/Ubuntu (embrace), forces unstable backdoored "systemd" -> Linux (extinguish soon)
Reusing the last image I did because I didnt wanted to make more OC stuff cos the few ++ gained arent worth it5
What Unix tool would like to use in real world? Like superpower :)
I would choose grep.
- easy ads filtering with -f
- fast search in books15
Actually I'm pleasantly surprised about Windows' stability nowadays. It's capable for running for up to a week with no stability issues, whereas systemd on the other hand.. let's just say that my Arch containers could do better right now.
Data mining aside, damn man.. Microsoft is improving for once! Is this the so-many'th unusable/somewhat stable switch? I mean, it's not like we haven't seen that happen yet! Windows 98, shit! Windows 2000, kinda alright! Windows Me, shit! Windows XP, kinda alright! Windows Vista, oh don't even get me started on that pile of garbage! Windows 7, again kinda okay! Windows 8, WHERE THE FUCK DID THAT START MENU GO YOU MOTHERFUCKERS?!!! Windows 10, well at least that Start menu got fixed. Then it got into some severe QA issues, which now seem to have gotten somewhat fixed again.
I'm starting to see a pattern here! 🤔13
This is a story of me trying out maintaining a game server and eventually making a mistake, although I do not regret experiencing it.
A month ago I set up a small modded minecraft server because I wanted to experience a fun modpack together with some people from reddit. Besides this, I also wanted to see if I was capable of setting up a server with systemd and screen running in the background. This went great and I learned a lot.
The very next day I was playing with $annoyingKid on the server and everything was well. However the second day, $annoyingKid started pushing the idea to start up a normal minecraft server to build a playerbase.
I asked $annoyingKid 'What about financing, staff management and marketing?'
$annoyingKid: "I don't know much about that, but you can do that while I build a spawn!"
He also didn't want to reveal his age, which alerted me that he's young and inexperienced. He also considered Discord 'scary' because there were haxors and they would get his location and kidnap him, or something. So if he was supposed to become owner (which he desired), he had no way of communicating with a community outside of the game.
He also considered himself owner, while I was the one who paid for the server. 'Owners should be people who own the server', no matter how many times I told him that.
$annoyingKid also asked if he could install plugins on his own, I asked him if he knew anything about ssh, wget or bash because I used ssh to set up the server (I know rcon exists, but didn't want to deal with that at the time), he had no idea what any of those terms meant and he couldn't give proper arguments as to why he should get console access.
In the end, he did jack shit, he had no chance of becoming co-owner or even head-admin because he had no sense of responsibility or hard work. I kept him around as an admin because he was the one who came up with the idea. I banned him on day one after he started abusing his power when someone tipped him of. Even after me ordering him to ignore an annoying player he kept going, of course I could have prevented all this by kicking him earlier since all the red flags around him had already formed a beacon of light. He tried coming back, complaining that he should at least have his moderator rank back, but he never got in again.
A week later I got bored, I had had enough fun with ssh and the server processes to know that I didn't want to continue the small project, so I shut it down and went on to do stuff on GitHub.
Lesson learned: Don't let annoying kids with no sense of responsibility talk you into doing things you aren't sure you want to be doing. And only give people power after they've proved to you that they are capable of handling it.3
Inspired by @Billgates
everyone around is hyped about new tech they get to use, new toys to tinker with, I can see their eyes shining when they hear "let's try and introduce kafka" - they would wiggle their tails all day long if they had ones!
And me? Well, a new potential employer got me so excited I couldn't wash a smile off my face for a few days! You know what they said? "we don't use any frameworks, we focus on clean code, solid, kiss and we write with tdd". Bare java - that's the best position I've heard of in years!
I guess I'm oldschool. But I truly believe their approach is the right one. Not trashing the code with spring [which is turning into smth what systemd is for linux/unix], hibernate and what not.
Just good old java code. Db, multithreading, request-mapping -- all plain, manual and simple.
My company decided to reinvent the wheel by writing its own queue system instead of using the existing message queue service.
And it uses plain PHP with exec() to run the workers.
Where do we store the job? We use mongoDB which is already used in our existing projects. We can query the collection/table each time the queue service start, execute the jobs, and let it exit if there's no job anymore. Don't worry, systemd will start the queue service again once it exits.
How to monitor the workers? Yep, we use ps and grep to check if the worker's PID still exists in the OS.
What about error stack traces? Nice question, we redirect the stdout and stderr when exec()-ing into a file.
What about timeout? We don't need it, let's just assume no one is going to write while(true).
It works flawlessly! /s8
Welp, its official, with Debian Buster adoption into our mainline, we are officially switching from Sys-V-Init to SystemD.
I still do not know how I feel about it.
From the professional point of view - Its a relief. SystemD has so many more neat features that make the life of a sysadmin easier. If any, I love that it tracks the uptime of a service, making it incredibly easy the last time it crashed / restarted...
On the other... I just... Am kind of afraid where the whole systemd environment will go with time... And... I guess... I am also worried about how much systemd is taking over in the system itself... It will mean learning quite a few new services, debugging routines and such...
A new era of GNU/SystemD/Linux is upon us.15
TIL shutting down a Linux machine with systemd with a delay will block new SSH sessions until the shutdown/restart happened.8
In today's episode of kidding on SystemD, we have a surprise guest star appearance - Apache Foundation HTTPD server, or as we in the Debian ecosystem call it, the Apache webserver!
So, imagine a situation like this - Its friday afternoon, you have just migrated a bunch of web domains under a new, up to date, system. Everything works just fine, until... You try to generate SSL certificates from Lets Encrypt.
Such a mundane task, done more than a thousand times already... Yet... No matter what you do, nothing works. Apache just returns a HTTP status code 403 - Forbidden.
Of course, what many folk would think of first when it came to a 403 error is - Ooooh, a permission issue somewhere in the directory structure!
So you check it... And re-check it to make sure... And even switch over to the user the webserver runs under, yet... You can access the challenge just fine, what the hell!
So you go deeper... And enable the most verbose level of logging apache is capable of - Trace8. That tells you... Not a whole lot more... Apparently, the webserver was unable to find file specified? But... Its right there, you can see it!
So you go another step deeper and start tracing the process' system calls to see exactly where it calls stat/lstat on the file, and you see that it... Calls lstat and... It... Returns -1? What the hell#2!
So, you compile a custom binary that calls lstat on the first argument given and prints out everything it returns... And... It works fine!
Until now, I chose to omit one important detail that might have given away the issue to the more knowledgeable right away. Our webservers have the URL /.well-known/acme-challenge/, used for ACME challenges, aliased somewhere else on the filesystem - To /tmp/challenges.
See the issue already?
Some *bleep* over at the Debian Package Maintainer group decided that Apache could save very sensitive data into /tmp, so, it would be for the best if they changed something that worked for decades, and enabled a SystemD service unit option "PrivateTmp" for the webserver, by default.
What it does is that, anytime a process started with this option enabled writes to /tmp/*, the call gets hijacked or something, and actually makes the write to a private /tmp/something/tmp/ directory, where something... Appeared as a completely random name, with the "apache2.service" glued at the end.
That was also the only reason why I managed fix this issue - On the umpteenth time of checking the directory structure, I noticed a "systemd-private-foobarbas-apache2.service-cookie42" directory there... That contained nothing but a "tmp" directory with 777 as its permission, owned by the process' user and group.
Overriding that unit file option finally fixed the issue completely.
I have just one question - Why? Why change something that worked for decades? I understand that, in case you save something into /tmp, it may be read by 3rd parties or programs, but I am of the opinion that, if you did that, its only and only your fault if you wrote sensitive data into the temporary directory.
And as far as I am aware, by default, Apache does not actually write anything even remotely sensitive into /tmp, so...
I wasted 4 hours of my life debugging this! Only to find out its just another SystemD-enabled "feature" now!
And as much as I love kidding on SystemD, this time, I see it more as a fault of the package maintainers, because... I found no default apache2/httpd service file in the apache repo mirror... So...8
More often than not, I hear that the mission-critical stuff in Linux is done by paid people, the folks that work from 9 to 5 with a fixed time/resource schedule. Is software in Linux all like that? Say for example, Linux (kernel), systemd, Xorg, all the desktop environments, LibreOffice, Mozilla, Chromium and such.
The reason why I'm asking is because I kind of feel like the premise behind Linux "free, libre, *philanthropic*" and such is kinda wrong. Especially the latter. Do the people in the mission-critical stuff really care about its stability any more than commercial software devs do? Sure the projects driven by personal needs that are published are philanthropic in their nature, I'm having some of those too. But those are all non-critical and maintained as such. The stuff that's behind the steering wheel however? I'm not sure...
In essence, is the mission-critical part of the Linux ecosystem - however open-source it is - any different from other commercial software products QA-wise?4
Since everyone is swithcing to Linux I decided to switch to it myself. I chose Arch, as I have some experience with linux. After a couple of hours trying to get my PC to boot from USB (I forgot to turn secure boot of) I began installing. After about 2 hours of switching between install and chroot and the installed system to get Wi-Fi to work (fucking Wi-Fi!!) I was ready to install gui. I decided to go with i3, xfce terminal and zsh + oh-my-zsh. It took me about 5 hours to get the UI looking decent.
In the meantine I learned about AUR and yaourt and how to make a user that can use sudo.
After about 7-8 hours I can say that I actually love it!
What I love:
-yaourt: it can install any software you need. Not in official repo? No problem! It will find it in AUR.
-Pulse Audio: I can controll exactly how loud anything is.
-i3: just i3 in general. It was hard to get used to it at first (coming from windows and xfce), but after 10 minutes I didn't even use mouse.
What I didn't like:
-Getting Wi-Fi to work relyably. I had to switch between install media and live system many times just to install a package that is apparently needed for it, but it's not obvious on the wiki.
-Getting polish characters (like ę,ł,ś) to work took 2 hours and I got to the 4th page in google to find a working solution.
-lack of usefull documentation on what is needed to get a GUI working. There is just a paragraph that to run a DE or WM you need x11 server installed. After installing it and running startx nothing happened. After some googleing I learned that I also needed sddm or lightdm-gtk-greetet installed AND enabled by systemctl enable and NOT systemctl start.
-Systemd-boot. It can automatically detect that I have windows installed, but not the arch linux install I just did? What the fuck? Why?
Overall, if someone asked me if it was warth I would probably say yes. If I end up not liking it I still have my Windows install (for gaming) intact (I hope, I didn't check) I can return to.15
In 2 weeks FOSDEM will be held in Brussels. I'll be going with some friends. Are you coming as well? Perhaps we could do a little meetup at the event?
Poettering will be speaking at the event as well btw. Presenting.. systemd-homed, a new systemd component. I shit you not. The "outdated" home directories are to be replaced by a service. Home directories as a service, the next big thing?
Here's the link if you're interested:
Reinventing Home Directories https://fosdem.org/2020/schedule/... #FOSDEM8
It took me a while to figure out why my systemd timer wasn't working
Ir was missing a line break at the end of the file :(5
I love software. Seriously, I love it. /s
Transmission is given a bad torrent (which, given that it's a torrent service, you'd expect it handles quite robustly) and completely fucks up. Like, really badly. It doesn't respond to RPC anymore, systemd has to resort to sending it a SIGKILL to get it off the process tree, and the web interface.. yeah. Nothing.
It doesn't log by default, so fine I'll add that to the systemd unit and restart it with debugging options enabled.
# systemctl daemon-reload && systemctl daemon-reexec
Turns out that /var/log/transmission.log can't be written to by my Transmission user. Well shit. Change that to /home/condor/transmission.log.
# systemctl daemon-reload && systemctl daemon-reexec
# systemctl restart transmission-daemon
*blood starts to reach its boiling point*
Still logs in the wrong fucking location. Systemd, I told you to log over there. I did everything I could to make you steaming pile of shit reload that fucking config. What's the fucking problem!?
*about 15 minutes of fighting systemd*
Finally! It spits out a log in the right location! Thank you Transmission and systemd for finally doing your fucking jobs. So a bad torrent it is, hmm...
*removes torrent from .config/transmission/torrents*
Transmission: *still fucking shits itself on that ostensibly removed torrent*
That's it. BEGONE!!!
Oh and don't get me started on the fact that apparently a service needs some 400MB of memory. Channeling your inner Chrome Transmission?10
I forgot I had a devRant account but here I am now
So basically I got bored from Coronavirus that I decided to create a new project
basically this bad boy right here: https://github.com/sr229/...
I created this basically because of my frustrations with WSL2 and the existing solutions that wasn't on par on what I need - hence this one. I wanted to share this project since I know some folk right around the corner has the same needs as I do.
In other news: I'm suffering from unemployment and a broken wallet, and here I am just slacking in a laptop nothing really doing something fancy.
Quarantine is fun y'all.7
Somebody tell me why I shouldn't use systemd timers, as opposed to crontab entries. Because I've been very impressed with them, so far.8
So I decided to install Arch on my Vps.
Problem: no connection from Vps to internet.
Info: I have terminal access from my hostings panel.
Solution: basic troubleshooting and Google
Problem: this hosting uses outdated install image with broken systemd-networkd.
Solution: install networkmanager
Problem: no internet
Solution: download networkmanager and dependencies on my laptop
Problem: How do I upload them?
Solution: put them in a tar archive, then base64 it and copy paste it via the panel.
Problem: That base64 is over 30MB. No browser lets me copy and paste so much text.
Solution: Write a quick and dirty Java that reads a .txt file and presses buttons.
Problem: Browser freezes after one second
Solution: Thread.sleep(10) after each character, and Thread.sleep(1000) after 10k characters for the browser to catch up.
It's currently going and I have no idea how long it will take. I'll post an update when it finishes.
And people ask me why I love programming. It can help solve so much problems with so little work.
Edit: according to some quick calculations this will take about 5-6 hours, so I'm cancelling it, sine it's past midnight now. I'll start it up tommorow before going to college1
So... has anyone yet made a comment about now exHead AMD Chief of GPU division Raja Koduri joining Intel?
Now this is awkward after I made this OC image not so long ago :/
Also in other news can we comment that Systemd has pretty much took over most linux distros? is this the new NSA backdoor? (before someone points out is open source, have anyone been able to properly audit it?)4
Is it just me or is systemd 240 royally fucked up?
My containers running Arch don't get connected to the network and systemd-networkd fails to start. On my laptop, the network is also unable to connect sometimes. And it consistently fails to complete shutdown without hard poweroff. The only viable temporary solution was rolling back to a snapshot in ALA that still has 239. Is that really supposed to be how a critical system component like the init is supposed to behave and get taken care of its issues?
Fuck QA, amirite 🤪.. seriously, that's even worse than Windows' "features" 😒13
1. NixOS is largely recognized as the superior distro it is, contributors double
2. NixOS gets no-systemd and Redox kernel support
3. Boss hires someone who knows their shit so I don’t have to entertain all our clients3
Kubernetes is a breeze they said. Now I‘m sitting here for several hours trying to find out why my pods randomly fail to resolve domain names.
Coming along my adventure: broken systemd configs, systemd-resolved stub causing loops, broken k3s modules and finding out that busybox‘s nslookup is broken for versions greater than v1.28.4.
50 issues later, I figured out that the dude who setup the corporate network (where the machine in question is located) uses two nameservers: one to resolve the internal routes and one for all the external domains. Luckily, coredns randomly picks a nameserver for each request. Therefore, sometimes queries for external domains reach the nameserver dedicated to the internal network which then answers with NXDOMAIN.
I hate networking so so much...4
As of two days ago, I no longer use systemd on my Arch system, I switched to openRC.
Basically it all started right around 9 months ago, installed Arch on a new laptop, and whenever I would reboot (which was never very often, mainly kernel upgrades), about 7 out of 10 times it would crash when booting up. My solution for a while was "just don't reboot then".
I spent a while trying to figure out exactly what was causing the boots to fail. I tried disabling systemd units, just trying to narrow it down. I even got the logs from each failed boot, comparing it to a successful boot to find any differences just to have some idea of what the issue was.
One day I figured, it's possible that it could be an issue with systemd itself. So on my day off of work, I figured I'd try using a different init system, just to see if it would work 10 out of 10 times. Decided to try openRC, and sure enough, IT FUCKING WORKS!
Now, I don't hate systemd, I've always been on the fence about it. I feel like it just tries to do too much. I will say, it is fairly convenient to have a lot of things running off of one component, making them all compatible, BUT there's also the factor that one issue could potentially fuck shit up.
Hell, I'll say that it is easier to use systemd than openRC. Enabling unit files is easy as shit in systemd. But I personally like a challenge, and to learn new things, that's part of why I use Arch.
Anyways, I'm done with my rambling for today.5
You know what's a good place for init Files? A standardized place...
A place, where one would expect it...
You know where isn't a good place
You know what is also a fuckin bright idea? Generic names....
Postgresql-10 is a rather anoying service name, if your plattform doesn't feature autocomplete for your plattform. Looking at no one. *Cough* centos *cough*
Well at least manpages for the service would have been nice...2
ZNC shenanigans yesterday...
So, yesterday in the midst a massive heat wave I went ahead, booze in hand, to install myself an IRC bouncer called ZNC. All goes well, it gets its own little container, VPN connection, own user, yada yada yada.. a nice configuration system-wise.
But then comes ZNC. Installed it a few times actually, and failed a fair few times too. Apparently Chrome and Firefox block port 6697 for ZNC's web interface outright. Firefox allows you to override it manually, Chrome flat out refuses to do anything with it. Thank you for this amazing level of protection Google. I didn't notice a thing. Thank you so much for treating me like a goddamn user. You know Google, it felt a lot like those plastic nightmares in electronics, ultrasonic welding, gluing shit in (oh that reminds me of the Nexus 6P, but let's not go there).. Google, you are amazing. Best billion dollar company I've ever seen. Anyway.
So I installed ZNC, moved the client to bouncer connection to port 8080 eventually, and it somewhat worked. Though apparently ZNC in its infinite wisdom does both web interface and IRC itself on the same port. How they do it, no idea. But somehow they do.
And now comes the good part.. configuration of this complete and utter piece of shit, ZNC. So I added my Freenode username, password, yada yada yada.. turns out that ZNC in its infinite wisdom puts the password on the stdout. Reminded me a lot about my ISP sending me my password via postal mail. You know, it's one thing that your application knows the plaintext password, but it's something else entirely to openly share that you do. If anything it tells them that something is seriously wrong but fuck! You don't put passwords on the goddamn stdout!
But it doesn't end there. The default configuration it did for Freenode was a server password. Now, you can usually use 3 ways to authenticate, each with their advantages and disadvantages. These are server password, SASL and NickServ. SASL is widely regarded to be the best option and if it's supported by the IRC server, that's what everyone should use. Server password and NickServ are pretty much fallback.
So, plaintext password, default server password instead of SASL, what else.. oh, yeah. ZNC would be a server, right. Something that runs pretty much forever, 24/7. So you'd probably expect there to be a systemd unit for it... Except, nope, there isn't. The ZNC project recommends that you launch it from the crontab. Let that sink in for a moment.. the fucking crontab. For initializing services. My whole life as a sysadmin was a lie. Cron is now an init system.
Fortunately that's about all I recall to be wrong with this thing. But there's a few things that I really want to tell any greenhorn developers out there... Always look at best practices. Never take shortcuts. The right way is going to be the best way 99% of the time. That way you don't have to go back and fix it. Do your app modularly so that a fix can be done quickly and easily. Store passwords securely and if you can't, let the user know and offer alternatives. Don't put it on the stdout. Always assume that your users will go with default options when in doubt. I love tweaking but defaults should always be sane ones.
One more thing that's mostly a jab. The ZNC software is hosted on a .in domain, which would.. quite honestly.. explain a lot. Is India becoming the next Chinese manufacturers for software? Except that in India the internet access is not restricted despite their civilization perhaps not being fully ready for it yet. India, develop and develop properly. It will take a while but you'll get there. But please don't put atrocities like this into the world. Lastly, I know it's hard and I've been there with my own distribution project too. Accept feedback. It's rough, but it is valuable. Listen to the people that criticize your project.9
Mother hugging systemd... Nobody asked tou to be born in a first place. Nobody asked you to solve problems we didn't have. And nobody asked you to open hugging backdoors in our systems!
Soooo finally. Day 2 of installing gentoo cane to an end. Right before midnight my first ever freaking gentoo install booted up just fine.
Yes first ever. I did install LFS before and Arch (which i used for 7 years) but never gentoo until now.
TBH only kernel changes are needed and this system will work perfectly. I used bare minimum config i made to get it at least running without GPU first. And yeah well first boot and yeah. I love it.
Its running without GPU and its nearly as fast with it.
Now i see why people say gentoo is the speed. Hell yeah it is.
But yes. The install did take me 2 days. I was aiming for that first ever boot to be a success boot. So i went slow and careful.
Did not use many guides as to learn as much as possible. And to make it more hard i did install systemd amd gnome.
Yeah thats all for today.5
Time for a rant about shitstaind, suspend/hibernate, and if there's room for it at the end probably swappiness, and Windows' way of dealing with this.
So yesterday I wanted to suspend my laptop like usual, to get those goddamn fans to shut up when I'm sleeping. Shitstaind.. pinnacle of init systems.. nope, couldn't do it. Hibernation on the other hand, no problem mate! So I hibernated the laptop and resumed it just now. I'm baffled by this.
I'll oversimplify a bit here (but feel free to comment how there's more to it regardless) but basically with suspend you keep your memory active as well as some blinkenlights, and everything else goes down. Simple enough.. except ACPI and I will not get into that here, curse those foul lands of ACPI.
With hibernation you do exactly the same, but on top of that, you also resume the system after suspending it, and freeze it. While frozen, you send all the memory contents to the designated swap file/partition. Regarding the size of the swap file, it only needs to be big enough to fit the memory that's currently in use. So in a 16GB RAM system with 8GB swap, as long as your used memory is under 8GB, no problem! It will fit. After you've moved all the memory into swap, you can shut down the entire system.
Now here's the problem with how shitstaind handled this... It's blatantly obvious that hibernation is an extension of suspend (sometimes called S3, see e.g. https://wiki.ubuntu.com/Kernel/...) and that therefore the hibernation shouldn't have been possible either. The pinnacle of init systems.. can't even suspend a system, yet it can hibernate it. Shitstaind sure works in mysterious ways!
On Windows people would say it's a hardware issue though, so let's talk a bit about that clusterfuck too. And I'll even give you a life hack that saves 30GB of storage on your Windows system!
Now I use Windows 7 only, next to my Linux systems. Reason for it is it's the least fucked up version of Windows in my opinion, and while it's falling apart in terms of web browsing (not that you should on an EOL system), it's good enough for le games. With that out of the way... So when you install Windows, you'll find that out of the box it uses around 40GB of storage. Fairly substantial, and only ~12GB of it is actually system data. The other 30-ish GB are used by a hibernation file (size of your RAM, in C:\hiberfil.sys) and the page file (C:\pagefile.sys, and a little less than your total RAM.. don't ask me why). Disable both of those and on a 16GB RAM system, you'll save around 30GB storage. You can thank me later.
What I find strange though is that aside from this obscene amount of consumed storage, is that the pagefile and hibernation file are handled differently. In Linux both of those are handled by the swap, and it's easy to see why. Both are enabled by the concept of virtual memory. When hibernating, the "real" memory locations are simply being changed to those within swap. And what is the pagefile? Yep.. virtual memory. It's one thing to take an obscene amount of storage, but only Windows would go the extra mile and do it twice. Must be a hardware issue as well.
Oh, and swappiness. This is a concept that many Linux users seem to misunderstand. Intuitively you'd think that the swappiness determines what percentage of memory it takes for the kernel to start swapping, but this is not true. Instead, it's a ratio of sorts that the kernel uses when determining how important the memory and swap are. Each bit of memory has a chance to be put into either depending on the likelihood of it being used soon after, and with the swappiness you're tuning this likelihood to be either in favor of memory or swap. This is why a swappiness of 60 is default most of the time, because both are roughly equally important, and swap being on disk is already taken into account. When your system is swapping only and exactly the memory that's unlikely to be used again, you know you've succeeded. And even on large memory systems, having some swap is usually not a bad idea. Although I'd definitely recommend putting it on SSD in a partition, so that there's no filesystem overhead and so that it's still sufficiently fast, even when several GB of memory are being dumped in.6
FUCK YOU SYNOLOGY
Fuck you for breaking all my custom shit.
Fuck you for wiping almost everything (but leaving random stuff) every major update.
Fuck you for switching from upstart to systemd 219 (RELEASED MARCH 2015!).
Fuck you for using an outdated kernel.
Fuck you for having the weirdest shittiest preconfigured settings.
Fuck you for using your own custom package format.
Fuck you for being so utterly broken.
Fuck you for making me work 10 hours just to get everything back up and running the way it was.
Fuck you from the bottom of my heart4
Discovered this dumb backdoor into http://tutorialspoint.com/codinggro... months ago (June 2019). It's in Project>Compilation Options
It lets you execute any command on their server. I found a lot out:
The system is Red Hat based (Fedora/CentOS/RHEL)
It uses Linux kernel 3.20
It has 251GB of RAM
It has an 800GB HDD
Its IP is 172.17.0.2
Its main username is cg
It uses systemd init9
worst mistake? plausible
I just chose _system_ as my username, I got a feeling it will be a prime target in a case of database intrusion :/
Recruiters or their bosses with sick ambitions and zero feedback.
Do I need to say more?
Spent few days to make my site looking good on desktop/mobile with few screenshots and even video to show my working projects in production. Even more few days to make really detailed 2 A4 CV with my previous job and what I was doing there. All generated from markdown.
I even saved money around half a year to go and live month in other country (Ireland, Dublin) and then on site send about 150 applications on various sites, emails, linkedout and local IT meetings.
Null, nada, nil, NaN accepted applications.
Is it some kind of joke? All companies almost cries for new workers and they don't even answer someone which founded and have no problem with growing own IT company for almost 5 years with self learnt, practically applied in production linux, HTML, CSS, JS, PHP, Go, bash, KVM and Openvz virtualization knowledge?
What they really want?
Astronaut with Brainfuck and Cobol with fluent backwards speaking Esperanto riding on monocycle with 3 hands and no need for sleep for -1 whoopercoin?1
FUCKING SYSTEMD PIECE OF CRAP.
*Punches a wall or something*
Ugh, newest version of PHP-FPM apparently has a dependency on a Systemd package. The package doesn't change the system's init daemon to systemd, but just the fact that it has that, that more and more stuff is becoming dependent on that crap of a bloated piece of software is driving me crazy.
I hate systemd from the bottom of my soul, not for being a bad piece of software by any means. The systemd environment is quite well fitted together, but for being a monolithic monstrosity that is taking over more and more of the traditionally independent system services.
It would be absolutely good in my book, if it allowed a user or admin to choose which parts of SystemD they are going to install, and so, in the core, it would be a mere init daemon.
But noooooo, systemd has to take over cron, system dns resolver, home and user management and I bet its not the end.
GNU/Linux is becoming GNU/SystemD/Linux...9
btw fellow gentoo users, what are your opinions about it? What advice do you have for noobs? My Black Friday E585 Thinkpad is coming in a few weeks and I'm thinking about switching distros.
Used to use Arch, recently I've been using Artix with runit as the alternative init system. I need something simple and systemd free, and I think gentoo would scratch that itch.7
I'm gonna be installing Arch for the first time, and I'm wondering if anyone has any recommendations.
I'm mainly interested which filesystem and system (aka systemd) thingy should I go with. But fell free to leave any other suggestions.15
You had that moment when you agree with someone and given a ++ because it takes less space in DB than comment?
The endless argument I remember from my old job:
Putting service units files in /etc/systemd/system/ or in /usr/lib/systemd/system2
Yesterday: Enjoying my VFIO machine running on Ubuntu. Windows nastiness confined to a VM, full performance graphics. Heaven.
Today: Take a system update. Systemd hanging on boot. No console output because systemd helpfully prevents all that from showing. AARGH!1
Upgrading frontend JS node webpack apps created from boilerplates or cli creators including versions in package.json
My brain already hurts only thinking about it.
FUCK LINUX part 932.5
Actually systemd, I know it's !== linux but it comes with linux so fuck them both, fuck ALL OF IT
*systemd service file*
StandardError=append:/myshit.err.log # erm... please?
yeah fuck this guy, let's all go to /var/log/messages29
In last episode of "How SystemD screwed me over", we talked about Systemd's PrivateTMP and how it stopped me from generating SSL certificates.
In today's episode - SystemD vs CGroups!
Mister Pottering and his team apparently felt that CGroups are underused (As they can be quite difficult to set up), and so decided to integrate them into SystemD by default. As well as to provide a friendlier interface to control their values.
One can read about these interactions in the manual page "systemd.resource-control"
All is cool so far. So what happened to me today?
Imagine you did a major system release upgrade of a production server, previously tested on a standalone server. This upgrade doesn't only upgrade the distribution however, it also includes the switch from SysVInit to SystemD. Still, everything went smooth before, nothing to worry now then, right? Wrong.
The test server was never properly stress-tested. This would prove to be an issue.
When the upgrade finishes, it is 4 AM. I am happy to go to bed at last. At 6 AM, however, I am woken up again as the server's webservices are unavailable, and the machine is under 100% CPU load. Weird, I check htop and see that Apache now eats up all 32 virtual cores. So I restart it, casting it off to some weird bug or something as the load returns to normal.
2 hours later, however, the same situation occurs. This time, I scour all the logs I can, and find something weird - Many mentions that Apache couldn't create a worker thread? That's weird.
Several hours of research and tinkering later, I found out the following:
1 - By default, all processes of a system that runs SystemD are part of several CGroups. One of these CGroups is the PID CGroup, meant to stop a runaway process from exhausting all PIDs/TIDs of a system.
This limit is, by default, set to a certain amount of the total available PIDs. If a process exhausts this limit, it can no longer perform operations like fork().
So now, I know the how and why, but how should I solve this? The sanest option would be to get a rough estimate of just how many threads the Apache webserver might need. This option, though, is harder, than apparent. I cannot just take the MaxRequestsWorkers number... The instance has roughly double the amount of threads already. The cause being, as I found out, the HTTP/2 module, which spawns additional threads that do not count towards this limit. So I have no idea what limit to set.
Or I could... Disable the limit for just the webserver via the TasksAccounting switch. I thought this would work. And it did seem to... Until I ran out of TIDs again - Although systemctl status apache2.service no longer reported the number of tasks or a task limit of the process, the PID CGroup stayed set to the previous limit. Later I found out that I can only really disable the Task Accounting for all the units of a given slice and its parents.
This, though, systemctl somewhat didn't make apparent (And I skimmed the manual, that part was my fault)
So... The only remaining option I had was to... Just set the limit to infinite. And that worked, at last.
It took me several hours to debug this issue. And I once again feel like uninstalling systemd again, in favor of sysvinit.
What did I learn? RTFM, carefully, everything is important, it is not enough to read *half* the paragraph of a given configuration option...
Oh, and apache + http/2 = huge TID sink.
Always spend an hour debugging your container services before you think to clear the browser cache.4
At this point of my side project I wanted to check out openresty for dynamic proxy creation in nginx.
Happy to check it out I installed centos 7 as guest using new command I just learned virt-builder that would automate vm creation.
Spend 10 hours debugging why I can ping and ssh but cannot get to application port from any network.
Checked iptables, restarted network, reinstalled vm again 3 times with different methods.
Scrolled trough whole internet and it’s mostly outdated problems.
Learned bunch of new commands without new results.
Results were always the same:
No route to host.
Turned out firewalld is fucking thing now.
systemctl firewalld stop helped
Now I know that systemd would kill me at some point for sure.
What I can add at this point ?
Please add more distros, differences, standards and programming languages so world definitely would be better place.
I need a short break now to actually start making shit that I wanted to start at 4-5pm on Saturday.
It’s Sunday 3:30am and time for breakfast.
At least I am happy it started working.2
God, I wish there was a hybrid distro, between Debian and arch.
A big as fuck repo and update-alternatives like in Debian, but with pacman and makepkg.
Oh, and without systemd.5
fuk pulseaudio and its mother cancer systemd >=0
idk how or why ppl defend this shit. have to use pulseaudio because i've tried to NOT have systemd and pulse audio before but arch insist everything needs pulseauadio.
i have never, EVER, had pulseaudio just "work"and be consistent for me - on any distro.
reboot a minute ago, some how all my audio is fuked up. bass is off. balance went to the right. volume went down to almost nothing. wtf is this shit? you've been around for years, these shouldn't still be problems.1
I fucking hate Windows... Yes I know it's beating a dead horse, but bear with me for a second here:
I really didnt mind it before, but I fucked up majorly on my dual-booted PC yesterday (dont fuck around with systemd if you don't know what you're doing) and needed to reinstall both Linux and Windows. Linux still has some hardware problems (second screen's not being detected), but else everything's just dandy.
But Windows... Holy motherfucking horse-cum drenched piece of goddamn trash! Shit wont listen to me!! I can click in that retarded settings app whatever I want and it still merrily keeps doing whatever the hell it wants 🙄🙄 Why exactly do I still put up with that?!
I just created my first service under systemd.
Having never made one under sysVinit I don't know how difficult it is, but I found this to be fairly easy.
Someone send help. IBM has taken over my village. They're brainwashing the children; they wont use any packages that don't end in 'd'!2
My setup, seeing that people are posting theirs.
+ BenQ 22" monitor
+ Custom-built PC
+ Fried i7 motherboard :(
+ Working i3 motherboard
+ 2 Green fans (top, back)
+ 2 Red fans (front)
+ (not-working-well) CD/DVD disk
+ 2G WD hard drive (not SSD :( )
+ 4-port USB 3.0 hub
+ SD card reader (with 3 more storage devices it can read)
+ HP DeskJet Ink Advantage
+ Horrible mechanical keyboard
+ Special keys (music player, play/pause, next/prev, etc.)
+ Mouse that doesn't stop glowing
+ Awesome speakers
+ 4 lights
+ Water jumps through the lights whenever audio rises
+ Xbox 360 S (2G internal storage: Ugh)
+ Speakers connected to Xbox 360
+ Desk Lamp
+ Arch Linux
+ i3-gaps (Me)
+ GNOME (full) (for rest of family)
Manjaro has some quirks that annoy me(no MST timezone, spotty support for my WD NVME), so I decided that since I'm not interested in any pre-configured graphical desktop of any kind, I should just dive into Arch, since it increasingly felt like that's what I was doing anyway but with Manjaro to dull the blow. So I did, and I am over the moon for doing so. Lots of gnashed teeth, but DDG indexes an answer to every question I've had, and it always makes sense when I find it. I've enjoyed having to dive into systemd in a much more low-level way than ever before-- to actually LEARN what it's doing, how, and why.
But one by one, I have been faced with some issue that I need to resolve, and one by one, I've knocked them off. The result now is the best work and gaming desktop I have ever used.
Arch is not for geniuses or wizards. Just patient people who are willing to read. The payoff is staggering, and many times over worth the effort.4
I am going to enable zram + zswap using systemd-swap. Any advice is welcome.
I currently do not have any swap enabled.4
Found a bug today that made me groan in frustration.
It appears that the official elasticsearch debian package checks if the system's init daemon is systemd by... Checking if systemctl binary is available.
Issue is... Systems might contain that binary while using a different init, as the binary is part of the "systemd" package.
To actually switch to systemd however, the package systemd-sysv has to be installed, which creates a link from /bin/init to systemd's main executable.
What happens when your system doesnt use systemd then? The postinstall/preremove scripts fail as systemctl fails to talk to the system bus, and thus, the installation is marked as failed!
Oversights like this are exactly the reason behind my systemd dislike. We never wanted the systemd package, but another key package suddenly added it as a dependency one day...
Now to see if this is reported as a bug already, and if not, to report it myself...
(also, who checks for init by looking for the init's management utility?! Its like I checked if sysvinit is installed by checking if update-rc.d is installed!
And not like figuring out the system's init daemon is hard anyway! Just check /bin/init, or, better yet, check for process with pid 0!)1
I don't know what's causing this issue, but my money is on systemd.
All I want is to be able to use my desktop without it randomly forgetting the address of my DNS server. Is that too much to ask? None of the other machines on the LAN have this problem, just the one machine that I interact with most. But of course SOMETHING just had to not work right with that ONE machine.4
So, uhm. I just messed up my entire bootloader. Oh boy, here we go again.
So, I tried to set uo hibernate on my hdd.
It takes longer to start than to reboot, but atleast I learned a bit more about my bootloader / systemd ...2
I hate the feeling when the processes maxing out all my cpu cores are processes I thought were long since terminated. I guess even when I rm -f I don't really let go and still have the tar.gz in the back of my mind somewhere, and somehow zcat pipes those seemingly tidy archives all over my cwd at the worst possible times like some systemd transient timer that I can't recall the syntax to check... This is when the shell becomes unresponsive and I can't cd away, or even ps aux | grep -i 'the bad thoughts' to get their pid to figure out why this is happening again. Is it really time to hold down the power button? I'm so afraid of loosing unsynced data, I'll wait a little longer...
Just wanted to free up some space and separate all of my projects.
First idea ... failed!
mksquashfs /home/tracktraps/Development/myproject1 ~/Squash/myproject1.sfs -info -progress -b 1048576 -comp xz -Xdict-size 100%
mount ~/Squash/myproject1.sfs /mnt/myproject1
unionfs -o allow_other,nonempty ~/.unionfs/changes/myproject1=rw:/mnt/myproject1/=ro ~/Development/Project1
Too much cpu overhead, too many folders, can't delete files, all get mixed up ...
Second idea ... failed!
dd if=/dev/zero of=~/Imgs/myproject1.btfs bs=1M count=10240
mount -o defaults,noatime,autodefrag,compress,compress-force,inode_cache ~/Imgs/myproject1.btfs ~/Development/Project1
Well ... little overhead, gzip compression, saved a lot of space, but fixed img size.
Third idea ... yay!
truncate -s 200G ~/Imgs/myproject1.btfs
mount -o defaults,noatime,autodefrag,compress,compress-force,inode_cache ~/Imgs/myproject1.btfs ~/Development/Project1
Well ... little overhead, gzip compression, saved a lot of space ... but wait ... why do my btfs files consume more and more space?
Hmm ... time for a little bash and my beloved systemd timers.
for f in `find . -type f -name "*.btfs"`
btrfs balance start -v -dusage=100 ~/Development/$project
btrfs balance start -v -musage=100 ~/Development/$project
fallocate -d -v $f
I really don't know how I feel about SystemD.
Their recent reveal of Systemd-Homed made me once again doubt the logic behind the project. I mean, yes, systemd is handy to work with at some occasions (SysVInit, for example, doesn't store information about when a certain service failed), but SystemD is slowly eating up more and more of the system's jobs, and I'm a little worried, what would happen if SystemD suddenly went bust.
That will never happen, I know, but... Wasn't the idea behind Unix... Its modularity? That its made up of clearly defined parts that cooperate with each other, rather than a huge, monolithic projects that handle several functions at once?
This is not meant to be a hate post about Systemd, just a little... reminiscence about its goal and role in the Linux community.
Any ideas are appreciated! Discussions are welcome. Just... keep it civil. Please.3
Experienced devs please tell help me.
Learning software development has been a challenge. Many times it's frustrating.
I also learn languages and I find them to share one trait with software development, which is complexity.
At first I looked at languages the way I'm currently doing with software. I'd look in a new language and after decided it's cool to learn it, I would stare at it for a few weeks trying to realize what the heck I was going to do. I wouldn't even know how to get started.
Eventually this stage goes away and I think that is about to happen with me with software.
But then a new challenge would come, which is me not making progress as I wanted. That's sort of happening with me by learning software as well, bit in language I now know how to deal with it.
That's because I work full time with something that isn't in my interests and when I arrive home Im tired and want to relax. So I decided my language learning had to go slower as long as I have this job, meaning no hours spent in front of books or a pc studying - that's what I could do with English, I was a teenager and had 12 hours a day to do whatever I wanted.
So I usually spent 5 minutes here and there learning something in my target language when I can, no frustration needed, my only rule is: practice everyday, even if I don't learn anything new.
With software, that doesn't apply though.
So, what I mean by tracing a parallel between these to fields is that I have a strong conviction is that once you get the principles on how a certain kind of learning works, you can apply it everywhere in the field. But with software it's been harder.
Anyways, I see that are some principles that apply, cause trying to learn software is changinge and teaching a lot of things like:
*you have to read a lot (of documentation) . At first I thought all documentation was painful to read and understand, but I found out some software are well documented and one can use those only to get used with it.
*immersion / discipline are important. I'm not very disciplined, I'm better with immersion but both are important if you need to acquire complex subjects/skills
*how to deal with complexity. I installed Arch Linux a few days ago. Just to install it I ended up reading more than 20 pages of documentation (install guide, Wpa supplicant, systemd, networkd, xorg, etc etc). Gradually I'm realizing that when you have to install/tweak something in that distro you necessarily spend a bunch of time trying to understand how it works, otherwise you don't get too far like in Ubuntu or Debian.
*and lastly the one that bothers me. Constantly getting frustrated and feeling crap about my poor skills. No matter how much I progress, it still seems like I'm stuck.
(that's when I ask your help/opinion :) )4
Being a full stack developer within a company that has separated departments for each stack can be very frustrating, especially when it comes to just a development environment.
Although my main role is a backend PHP developer, there are times where I need to configure or install something in a development server. But I have to put in a request to the networking team every time I want something done. Personally I find this to be very inefficient and wasting my time and the networking teams' time as well.
An example would be I want to install Supervisor to have a process restart in the event that it dies, which I explained to the networking guy. But the networking guy says that they don't want to install it, can just make a systemd service instead. I said that is fine and asked if he could do that or can I do it myself. Then he wants to know why I want to have a systemd service installed even though I just explained it to him!
Though I guess I'm always going to have this kind of issue with networking teams.1
Installed Kali Linux alongside Arch Linux. Earlier I was using systemd boot manager. Now that I've installed Kali, grub was installed along with it. Now when I boot arch via grub it's not loading.
Some of the daemons are loading and then it stops there itself.
"hey come try this good chat program called demonsaw"
5 days later:
developer: "i have no idea why it's so unstable for you only, at this point i'd suggest trying a different distro"
me: *tries a bunch of distros* "yeah all of them are just as fucked"
we went through "well is it DS' config? Is it your kernel? systemd? debian misconfig? libs? hardware? network? other shit running? ulimit settings? does Windows do this too? How about OSX?"
i feel so bad but we have no idea what is happening6
Had to optimize today a DB File / MySQL 5.7
I'm sometimes sad that software cannot bite people in their crotches, shit in their faces and fuck their eyes out.
The config was non commented and a disaster.
Yay. Let's set thread_cache to 16K while max connections is 50.
And raise limits like max files without adjusting SystemD / ulimit
And OF COURSE MySQL sucks...
So let's migrate to PostGres.
This has happened way too often.
Really. Software should have the right to punish dumb people. At least ... 10 kv shock to teach a lesson.1
Spend few days to make reasonable profile on angel.co to get some job. After few months and hundreds of applies only few shitty responses for free work. Probably all recruiters are US based and see I'm from Europe so my e-cv goes right to e-shredder instantly. FML.
Wanted to add alerting for systemd services in Prometheus today, which spontaneously turned out to be a huge pain in the lower human backend.
For some reason, on Ubuntu 16.04 systemd adds services without unit files for software, that isn't even installed on the damn server (in this case for mysql-server / mysql-common and mysql-client are installed) and lists them as "not-found" and "inactive". The prometheus node exporter that we use, has a little bug in the systemd collector that makes sure that the states of *all* services are collected - even those without a unit file.
so those metrics are pulled by prometheus and now I have to take with those faulty metrics in the condition logic of the alert, because I'm trying to trigger that one on a service which is listed with state "active" = 0 or "failed" = 1.
now guess. right! If the unit file doesn't exist, the regarded systemd service is marked as "inactive", which is another possible state of the metrics in the node exporter. the problem is that the value 1 for state "inactive" means, that "active" has the value 0 (not even wrong) and the alert is triggered.
so systemd fucks up somehow, the node exporter collector fucks up because systemd fucked up and I have to unfuck this with some crazy horse shit logic. w.t.f. to that.
the only good news is, that it works like a charm on Ubuntu 18.04, as far, as I can tell.
while writing this little rant, I thought of a solution.
I could try to change the alert condition to state "active" = 0 AND "failed" = 1.. but that will wait till tomorrow.
one does not simply patch monitoring conditions at midnight..4
Ranters, I need help
Does anyone know how can I run something as a systemd service and still have access to the "console" - the input and output of the program, when I need it?
(It is a minecraft forge server and there are multiple people managing the physical server and one of them managed to corrupt the map yesterday by rebooting the machine without stopping the minecraft server... so there comes the need for a service so it can shut down before the machine reboots... but I also need the access to the console of said minecraft server because sometimes when some modded items are misbehaving the rcon will stop responding while the console still works)
Edit: currently I am running the minecraft server in a detached screen (ddg "screen linux" if you don't know what I am talking about)5
I know how many people hate systemd. I started reading about it a week ago and I am enjoying it. Seems a much better alternative to previous things.
Is there something bad I should know about...2
What service would you recommend for monitoring systemd services and notify me when one of them are down?6
I brought my laptop on vacation, but I left my archiso USB drive at home, assuming I wouldn't break anything.
I broke networkmanager. I just added a connection, it worked flawlessly, but for some reason it is now a reason to stop booting. It enters emergency mode, but I can't type anything... Possibly because it doesn't have read/write access or something idk.
But how on Earth would this break my system??? I'm beginning to understand why some people dislike systemd sometimes...
I guess I'll fix it when I come home...6
I have no problem reading constructive criticism of systemd. It has its problems. However, sometimes those critics try to claim that init run levels, or rc scripts, with their arbitrary meaning and the Bourne shell's ad hoc syntax, are a perfectly acceptable solution to the problem that don't need replacing.
I've never seen an OS startup mechanism that tells me, while the system is up, "the change you just made will make it impossible to bring the OS up if you restart it". And that's a real problem.1
Any fellow Gentoo users here? How much pain did you have to suffer?
Should I upgrade my Gnome version to the newest version while expecting no issues? (am running systemd)
Can I just unmask the Gentoo kernel source package and expect to just compile a 4.14 kernel?
I don't want to break that system because I use it everyday...3
The moment you try new tty and forgot to enable both old and new before reboot....
(atleast, I have bootable usb)
To you CPP-devs,
I want to write a small ask-password tool, like systemd-ask-password, but tty-only and non-systemd.
I use termios to switch the terminal into noncanonical mode and disable echo of stdin.
Now I want to read chars from cin and append them to a string, until I read an endl or an error occurs.
In C, I could use an input-loop with getchar, but how could I do this the CPP-way, since cin.get() is nonblocking?2
It makes me want to cry in frustration that I... actually love SystemD, as an *init* system. But with all the crap it brings along with that core part, it just makes it so much harder for me to really enjoy! Why can't it be modular? Why can't it be broken down into independently-installable packages, with the init system as a core? Is there some sort of internal API issue? Or does mister Pottering just does not want that to happen? The Linux world has always stayed by the idea of "1 package = 1 task", and it made the system management so much easier!
But now... When I switch to SystemD from SysVInit, I get... What SysVInit did + so much more I didn't ask for... I just... Don't understand it.3
Getting Gentoo to boot (including Systemd, UEFI Grub2, dracut, initramfs and proprietary NVIDIA drivers.1
I'm migrating a node app from rh6 to 7, initd to systemd...
Init.d runs start.sh which then spawns calls pm2 with the args. The problem though seems to be (I set the service to be forking otherwise it doesn't let it or kills the child threads?) But then there service then says it fails since I guess the script exited by itself...
And therefore the stop didn't work either?
I just need a service that acts as a link? To the actual start stop scripts and just run them? Without killing the could orocesses7
Which method do you prefer: installing softwares via apt-get install or .deb packages?
My colleague disagreed with me when I choose apt-get install over downloading the .deb package. Later on it turned out the package on the ppa was outdated and didn't include systemd init scripts. I purged the package and installed the .deb provided in its website.
Worked like charm.
He had a good laugh.3
Favorite / most used systemd timers?
I recently wrote one to pull the location data of users for an app and make a heat map of sorts which updates every hour. Probably could make it run on a quicker timer but not many eyes on it at the moment.5