Systemd helper that allows to start/stop services in chroot ( though we will use it for android env )
Go to file
Aleksandr Sobolevskii 8dcd6303ef
Merge pull request #8 from Frankkkkk/patch-1
shebang: use bash instead of sh
2023-07-26 21:14:25 +07:00
enabled add autorun services - serviced 2013-04-18 21:06:22 +00:00
.gitignore upd readme 2014-10-01 22:26:59 +07:00
LICENSE.txt Create LICENSE.txt 2019-05-13 16:01:37 +07:00
README_ru.md update readme 2014-10-01 22:58:11 +07:00
README.md update readme 2014-10-01 22:58:11 +07:00
servicectl shebang: use bash instead of sh 2023-06-07 09:44:42 +02:00
serviced Update serviced 2023-06-07 09:45:11 +02:00

Control daemons for systemd in chroot environment

Servicectl - bash script start/stop service (daemons) for linux using systemd in chroot and SysVinit outside the chroot environment. servicectl management daemon uses the service files of systemd, e.g. /usr/lib/systemd/system/nginx.service

Introduction

Systemd is not working in chroot environment:

sudo systemctl start nginx
Running in chroot, ignoring request.

If your base system (outside chroot):

Requare for chroot system (inside chroot):

  • installed systemd

Installation

Packages:

ArchLinux - https://aur.archlinux.org/packages/servicectl/

Manual:

wget https://github.com/smaknsk/servicectl/archive/1.0.tar.gz
tar -xf 1.0.tar.gz -C /usr/local/lib/
ln -s /usr/local/lib/servicectl-1.0/servicectl /usr/local/bin/servicectl
ln -s /usr/local/lib/servicectl-1.0/serviced /usr/local/bin/serviced

Usage

servicectl

sudo servicectl action service

This command just exec ${action} from file /usr/lib/systemd/system/${service}.service If passed action enable or disable, servicectl create or delete symlink on ${service}.service for use serviced.

Params:

  • action - can be {start, stop, restart, reload, enable, disable}
  • service - file name in folder /usr/lib/systemd/system/

serviced

sudo serviced action

This command exec ${action} for all enable services.

Params:

  • action - by default start, can be {start, stop, restart, reload, disable}

Example

I'm using chrome os as the base system and archlinux in chroot environment.

# inside chroot
sudo servicectl enable nginx php-fpm

# outside chroot: 
# init startup and run all enabled daemons
sudo chroot /path/to/chroot serviced

If you know how to do it better, let me know =) Good luck