**Build Status:** [![Build Status](https://travis-ci.org/mmstick/systemd-manager.png?branch=master)](https://travis-ci.org/mmstick/systemd-manager)

# Systemd Manager

This application is a systemd service manager written in the Rust programming language with GTK3 as the graphical user interface of choice. The units are filtered into three separate lists: services, sockets, and timers. As a unit is selected in the left pane, the right pane is updated with information pertaining to that unit, and the right headerbar is updated to reflect the status of the unit where you may disable/enable and start/stop the selected unit. Services are units that are activated immediately, sockets are units that are activated when they are needed, and timers are units that activate on a regular time interval. In addition to display units, the application also provides stats generated by `systemd-analyze` on the Systemd Analyze view.

## Install Instructions

### Arch Linux

This is available in the AUR as a git package: [`systemd-manager-git`](https://aur.archlinux.org/packages/systemd-manager-git/).

### Fedora

[RPM repositories](https://copr.fedorainfracloud.org/coprs/nunodias/systemd-manager/) have been made available for Fedora 22, 23 and 24 by Nuno Dias.


### Ubuntu

There are currently no PPAs to provide at this time. However, I am providing Debian packages which should largely be a two or three click install. This package should work on all Debian-based distributions that ship a version of GTK that
is newer than GTK 3.16.

https://github.com/mmstick/systemd-manager/releases/download/0.4.7/systemd-manager_0.4.7_amd64.deb

### Building From Source

#### Debian/Ubuntu

For Debian-based users, ensure that you have installed the `cargo-deb` subcommand. The `cargo-deb` subcommand build and generate a Debian package based on information in the `Cargo.toml` file automatically.

```sh
sudo apt install libgtk-3-dev -y
cargo install --git https://github.com/mmstick/cargo-deb
git clone https://github.com/mmstick/systemd-manager
cd systemd-manager
cargo deb && sudo dpkg -i systemd-manager*.deb
```

#### Everyone else

This will simply install directly to the /usr prefix. Simply install Rust via [rustup.rs](https://www.rustup.rs/) and execute `make & sudo make install`. The installation of Rust software is incredibly simple as the process is largely just `cargo build --release`, but this installation script will install all the files needed by the application for proper integration with **PolicyKit** into the correct places in the filesystem, which `cargo install` does not perform.

```sh
git clone https://github.com/mmstick/systemd-manager && cd systemd-manager && make && sudo make install
```

In the event that you would like to uninstall the application, simply run the following:

```sh
sudo make uninstall
```

## Screenshots

![Services](screenshot-services.png)

![Sockets](screenshot-sockets.png)

![Timers](screenshot-timers.png)

![Journal](screenshot-journal.png)

![Analyze](screenshot-analyze.png)
