Adrian Lita
Profile

Adrian Lita

Embedded Systems / Software Architect / Engineer

Location: Bucharest, Romania
nanoinit

Overview

Linux based, Docker-aimed supervisor with very low memory footprint and full control of targeted applications. nanoinit is a dependency-free, very lightweight supervisor application (daemon) especially crafted for using inside Docker containers. RAM size is as little as possible, dependent on the number of apps in the config file; usually does not exceed a few KB. The main reason behind this project is that we were usually using supervisord as the default supervisor for docker containers, but this came with a >100 MB Python and tons of packages, which made no sense when Python wasn't required for other purposes.

What I Did

  • everything was 100% implemented by me

Disk size

  • for Ubuntu Linux: ~41KB
  • for Alpine Linux: ~66KB

Main features

  • JSON configuration via the -c argument
  • non-dedicated JSON configuration via the -j argument
  • save logs to your desired path
  • add any number of apps to supervise, with any combination of parameters
  • redirect stdout and/or stderr of your applications to specific locations
  • autorestart failed apps
  • manual mode for specific apps

Technologies Used

  • C
  • JSON
  • Linux
  • Docker
Adrian Lita - CV