Book Image

The Software Developer's Guide to Linux

By : David Cohen, Christian Sturm
5 (2)
Book Image

The Software Developer's Guide to Linux

5 (2)
By: David Cohen, Christian Sturm

Overview of this book

Developers are always looking to raise their game to the next level, yet most are completely lost when it comes to the Linux command line. This book is the bridge that will take you to the next level in your software development career. Most of the skills in the book can be immediately put to work to make you a more efficient developer. It’s written specifically for software engineers, not Linux system administrators, so each chapter will equip you with just enough theory to understand what you’re doing before diving into practical commands that you can use in your day-to-day work as a software developer. As you work through the book, you’ll quickly absorb the basics of how Linux works while you get comfortable moving around the command line. Once you’ve got the core skills, you’ll see how to apply them in different contexts that you’ll come across as a software developer: building and working with Docker images, automating boring build tasks with shell scripts, and troubleshooting issues in production environments. By the end of the book, you’ll be able to use Linux and the command line comfortably and apply your newfound skills in your day-to-day work to save time, troubleshoot issues, and be the command-line wizard that your team turns to.
Table of Contents (20 chapters)
18
Other Books You May Enjoy
19
Index

Create Your Own Service

As a developer, you may need to wrap a program you’re writing into a service, which can be more easily managed than a manually-run program. Let’s walk through the process:

  1. Ensure that you have an executable file copied to a place that is in the default $PATH: /usr/local/bin/yourprogram.
  2. Create the following systemd unit file at /etc/systemd/system/yourprogram.service:
[Unit]
Description=Your program description.
After=network-online.target
[Service]
Type=exec
ExecStart=/usr/local/bin/yourprogram
Restart=on-failure
[Install]
WantedBy=multi-user.target

Have systemd re-read its config files to make sure it sees the new service Unit you’ve defined:

$ sudo systemd daemon-reload

Now you can manage this like any other systemd service:

systemctl start yourprogram
systemctl status yourprogram
systemctl stop yourprogram
systemctl enable yourprogram
systemctl disable yourprogram

That’s all you need for an extremely simple service –...