Skip to content
Permalink
Browse files
added services intro
  • Loading branch information
aa7401 committed Aug 7, 2019
1 parent 1f0a3b8 commit c6014316db29f28c7aa230751369ec9d96c546b1
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 4 deletions.
@@ -4,10 +4,10 @@
In this worksheet you will be shown how to setup and configure a raspberry pi as a central 'hub' for your home automation system. By the end of this you will have:

1. The operating system (Debian Stretch Lite) installed on the hub.
2. The I2C interface configured for use (and a small display attached).
3. A working MQTT broker installed (but not fully secured!).
4. The latest versions of Python and Pip.
5. A NodeJS runtime environment for running scripts. We will then use this to publish a simple API.
2. The wireless interface configured to connect to the Internet.
3. The ability to connect securely over SSH from a remote computer without entering a password.
4. Changed the host name of the computer
5. Changed the password on the default user account.

## 1 Installing the Operating System

@@ -0,0 +1,63 @@

# Managing Services

A lot of the software you will be installing, such as [MySQL](https://www.mysql.com) will need to run as background services. This tutorial will guide you through how to install and manage background services.

## 1 System D

https://www.linuxjournal.com/content/initializing-and-managing-services-linux-past-present-and-future

### 1.1 Installing Neo4J

In this section you will be shown how to install and run a Neo4J instance using SystemV.

## 2 Docker

You can use the [Docker Playground](https://labs.play-with-docker.com) to learn how to work with Docker.

## 3 Homebrew (MacOS Only)

Until now all the tools and techniques covered work on the Raspberry Pi or indeed any computer running a [Debian](https://www.debian.org) based [Linux](https://www.linux.org) distribution (such as [Ubuntu](https://ubuntu.com) or [Raspberian](https://www.raspbian.org)). If you are using a [Mac](https://www.apple.com/uk/mac) (and [MacOS](https://www.apple.com/uk/macos)) for your development work you should make use of the [Homebrew](https://brew.sh) package manager which provides commands to install, uninstall, update and run a wide range of software packages.

### 3.1 Installation

The installation instructions can be found on the main [website](https://brew.sh), in summary you need to run the following in the terminal app which uses the [Ruby](https://www.ruby-lang.org/en/) language:

```shell
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

### 3.2 Installing Packages

Once Homebrew has been installed you can use it in the terminal to install a wide range of software, for example to install MySQL:

1. Search for the software on the [Homebrew website](https://formulae.brew.sh/formula/mysql). This tells you the correct software name, in this case it is `mysql`.
2. Now we can install the software using `brew install mysql`.

### 3.3 Starting and Stopping Services

Many of the software packages run as background services and we need to be able to start, stop and restart these. The easiest way is to install the [Homebrew Services](https://github.com/Homebrew/homebrew-services) using `brew tap homebrew/services` command. The `tap` subcommand allows you to access other repositories that are not included in Homebrew's master repository.

Once the services are installed you can list the installed services and see if they are running using the following command:

```shell
$ brew services list
Name Status User Plist
mosquitto stopped
mysql stopped
neo4j stopped
```

Now we can start and stop the services:

```shell
$ brew services start mysql
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)
$ brew services restart mysql
Stopping `mysql`... (might take a while)
==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql)
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)
$ brew services stop mysql
Stopping `mysql`... (might take a while)
==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql)
```

0 comments on commit c601431

Please sign in to comment.