aboutsummaryrefslogtreecommitdiff
path: root/src/wiki/system/service-management.md
blob: 8aff8a6e7ea13009fed844b7ce95982aa41ffec5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Title: Service Management

Carbs Linux uses `busybox-runit` by default, but the repository additionally has the
original `runit` and `sysmgr`. You can install either with `kiss b runit; kiss i runit`
or `kiss b sysmgr; kiss i sysmgr`.

runit
=====

**Enabling a Service**

    ln -sf /etc/sv/acpid /var/service

**Disabling a Service**

    unlink /var/service/acpid

**Starting a Service**

    sv start acpid

**Stopping a Service**

    sv stop acpid

For more information refer to the `sv --help` output. Also check out the `sv(8)`
manual page if you have installed the `runit` package.


sysmgr
======

[sysmgr] is POSIX-sh service supervisor written by me. Its usage resembles
`runit`. The biggest difference is that `sysmgr` uses service files instead
of directories with run scripts inside.


svctl
-----

`svctl` is the equivalant of `sv` for sysmgr. You can run the above commands for
`runit` and use `svctl` instead of `sv`. Those would be as follows.


**Enabling a Service**

    ln -sf /etc/sysmgr/acpid /var/sysmgr

**Disabling a Service**

    unlink /var/sysmgr/acpid

**Starting a Service**

    svctl start acpid

**Stopping a Service**

    svctl stop acpid


Switching from runit
--------------------

Switching from `runit` is fairly easy. You can run the following commands to get
started with `sysmgr`.


    # Create the directories if you haven't yet
    mkdir -p /var/sysmgr /etc/sysmgr
    
    # Copy all of the run scripts to /etc/sysmgr
    set -- /etc/sv/*
    for service; do cp "$service/run" "/etc/sysmgr/${service##*/}" ; done
    
    # Link all enabled services
    set -- /var/service/*
    for service; do ln -sf /etc/sysmgr/${service##*/} /var/sysmgr ; done



[sysmgr]: https://github.com/cemkeylan/sysmgr