I have been working with and for Linux since version 0.94. In other words: I am not 20 anymore. Back in the old days, I ran around trying to convince companies to port software or to use Linux, I wrote device drivers, applications, fixed bugs and had it in production environments serving hundred thousands of users. But the current operating system is not longer Linux. It’s Winux. And I hate it.
People might say, that old dogs don’t like to learn new tricks. While this might be true, I am not an old dog and I enjoy modern environments very much. After all – the moment you stop learning, you might as well exchange your keyboard for a Playstation controller. I am not there yet and will probably die hacking my keyboard while enjoying a cup of Java and a smoke.
So – here’s one story. I am running an small openvpn network connecting my environments on different continents. This is always handy in order to access region-locked content. Shouldn’t be not too much of a problem to get the openvpn client running on my laptop now. Wrong. My MacBooc Air runs Fedora – the taste of the new Winux to come.
So I installed openvpn, dropped the configuration from another client into the correct directory and typed
No such luck. I found a README in /etc/rc.d/init.d/ explaining that this systems uses systemd. Now – I read a lot of stuff about systemd and my skin started to crawl.
Use “systemctl list-unit-files” to get a listing of all known unit files. Use systemctl “start foobar.service” and “systemctl stop foobar.service” to start or stop a service.
Well, a simple ls and start of a script would have been easier. But ok. Three pages of stuff zipped by. Does anybody know, what “polkit.service” is? Or “rngd.service” . Any of those services belong to one of my favorite three letter agencies? Unbelievable.
But we (still?) have grep:
#systemctl list-unit-files | grep vpn openvpn@.service
Found it. Now .. let’s start it.
#systemctl start openvpn@.service Failed to issue method call: Unit name openvpn@.service is not valid
Great. My first experience with systemd and it started to suck right away. After some online digging I found out, that the “@” has a meaning: It signals a server that can be started with multiple instances. This logic is not easy to understand. And in order to actually start the openvpn server, one does not type what is listed, but the following command:
#systemctl start firstname.lastname@example.org
This truly is a big step from
#ls init.d/openvpn -rwxr-xr-x. 1 root root 6256 Apr 5 2012 init.d/openvpn #init.d/openvpn start
I am impressed. Though even with the right command, openvpn didn’t start. In the old days, one would simply edit the start script to fix whatever problem exists. But we’re running Wimux now. I didn’t bother and started the server by hand.
#/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/server.pid --cd /etc/openvpn --config openvpn.conf
And everything is running as it is supposed to be. I may be going to roll my very own ‘old fashioned’ startup environment. I know that systemd allows that somehow, but I simply refuse to accept a brain fart like that.
Today, my mail server went down. Glorious postfix & dovecot & sasl. Hundreds and hundreds of people hate it. Its bloated, complicated and much MUCH too complicated for small to medium systems. Turns out, selinux has a problem with dovecot binding to a different port. Of course. Selinux.
But don’t get me started on this one.