fbpx

How did systemctl/systemd change the way your Linux workstation boots up?

So you’ve been starting and stopping your daemons with /etc/init.d scripts. Stubbornly you hold on to reaching for those gems in /etc/init.d/ over and over. But you know about the service program. How sweet it is to just type service apache2 status and see the output rushing past in the terminal.

A reinvented wheel? Well..

But then something happened. There was a new Linux boot time player in town and its name was systemctl and plenty of Linux users did not use it at once. “Seriously”, some thought to themselves – Another utility to start and stop daemons?! Well yes, but also no. For us that were used to calling init.d scripts directly or use the service utility, it seemed like here was another solution to do exactly the same thing. Woe. Haven’t we seen this so many times in the world of Linux. But it turns out that systemctl does more than that. It’s part of the systemd initiative which was an init replacement daemon. Systemd which controls and manages user services is meant to replace the init daemon.

Systemctl deals with the Kernel Panic

The goal was to start processes in parallel. This was to avoid the much too familiar Kernel Panic error that occurs when the init daemon could not start for some reason.

Systemd, or the System Management Daemon, is also the parent of all other processes. The key difference here is that it uses parallel processing during boot. It doesn’t stop there though. Systemd added plenty of new features as compared with Upstart on Ubuntu. Systemd will only start processes if they are depended on by another programs at startup. Compare that with Upstart which would power up all startup events as fast as possible.

The transition solution came in Ubuntu 15.04, it was possible to switch between upstart and systemd. Both packages were installed. From then on Systemd was accepted by several major distributions. We now see CentOS (and RedHat), Debian, Slack, and Ubuntu using systemd as well. That is a pretty major shift in the way of handling system startup across Linux distributions.

Changes that stretches further than start/stop/status

The changes that came with Systemd stretches far. For instance, Systemd is not POSIX compliant but does use the Unix Domain Socket. Fedora was the first distribution to feature Systemd but many others followed suit.

Some say nay to Systemd

Yet there are critics to systemd.. Some say that systemd is way too complex and “violates the design principle of Unix-like operating systems” (see Systemd criticism section on Wikipedia for full context). So when you fire up that Apache2 daemon next time, remember that you can do more than that. There’s the possibility to see dependencies, the possibility to queue jobs according to already queued jobs, and more. You can tailor a Linux startup in great detail with Systemd. Read more about Systemd at the Fedora project.

89% of hiring managers struggle to find talent

When Dice and Linux Foundation conducted their annual jobs report, the findings showed the challenges for recruiting companies.

89% of the hiring managers struggle to find candidates with the approriate skillset. 2,000 open source professionals were asked to provide their insights for the annual report.

Drilling down into the statistics it turns out that 60% of the positions are DevOps, and 53% are system administrators. This is certainly something for you to keep in mind as you work away on the commandline in Linux!

Bash: Automate enabling of Apache sites and modules

Want to automate the enabling and disabling of Apache sites and modules? Tired of running those a2enmod, a2dismod, a2ensite, and a2dissite commands? And then the cleanup involved with the same commands and the Apache2 daemon?

Check out this Bash wrapper for the Apache operations commands. It’s free to use and modify.

For the happy Linux and Bash experimenters out there, it’s a useful starting point to get started with Bash functions.

One or several Linux skills to pick up in autumn 2017

DevOps. It’s the acronym of the year. A buzzword that is talked about everywhere. Funnily enough, when Forbes posted the 12 most promising jobs on LinkedIn, DevOps wasn’t mentioned once. Ah well, you won’t go wrong with with the Docker container platform, just like you can use knowledge about Kubernetes virtual machines.

DevOps for the buzzword lovers

But speaking of DevOps, it could be interesting to know what programmers are using most these days. After all, DevOps is the merging of two worlds, Development and Operations. Looking at the list compiled by SitePoint earlier this year, JavaScript, SQL and Java are in the top three most used technologies.

With Java and Linux we can surely continue to expect Linux environments running JVMs and Java applications. And for you as a Linux professional, that means knowing how to configure Linux for optimization of the JVM is therefore still important.

Automate everything!

Automation is the name of the game for Linux engineers these ways. Not only for them, software testers are expected to automate their work more and more. Whether we are talking about REST API testing or frontend testing, businesses want these workflows automated. Scripting with Bash and Python is crucial for this, with a variety of packages available for Python for testing automation (a bowl of BeautifulSoup, anyone?). Read more about Tecmint’s Linux System Administrator’s New Year’s Resolutions from December 2016.

These days not only programmers are expected to use revision control for their source code. That’s right, Linux professional, time to roll up the sleeves and start committing nicely written scripts to Git, well documented for others to build on your stuff.

Java.. You don’t say?

When Paysa wrote about the 10 most valuable tech skills in 2017, Java still came out on top. That is one tenacious programming platform and runtime environment (half of the readers go “yeah!” and the other half goes “booh!”).

But as we can find on Paysa’s overview, mobile app development and database connectivity also show up high in the list. Now is the time to dig into MySQL (or MariaDB) and maybe check out a mobile app development course – Just so you know how it works. Especially from a DevOps continuous integration perspective, eh?

DevOps is the new business mantra and pops up in contexts such as testing, infrastructure reliability and development workflow management. For you as a Linux pro it means get into automation and virtualization. Yesterday was already late, but there is always time.