JService


JService is a system daemon responsible for making sure other services are running on a server.
Its job is to



Configuration parameters

Key
Values
Default
Description
autoupdate
0, 1
1
Automatic system updates
autoupdate_time
xx:yy
current time
Time of day updates should occur
autoupdate_day (multiple keys allowed)
mon,tue,wed etc
every day
What days of week should updates occur
autoupdate_service
0, 1
0
Services will be managed from service manager and updated during system updates
autoupdate_restart_services
0, 1
1
Restart services coming from packages which was updated
autoupdate_reboot
0,1
0
If an update asks for reboot, perform reboot
monitor_watchdog
0, 1
1
Enable watchdog driver. Server will auto-reboot on hang.
monitor_ipmi
0, 11
Monitor and report hardware events.
max_load
integer
5 * cpu cores
Threshold for reporting load alerts
monitor_disk (multiple keys allowed)
/home
/
Disk partitions belonging to folder that should be monitored for low disk space
monitor_disk_<folder value>_minimum_mbytes
integer
minimum 500mb and 2% of total space
Threshold for reporting low disk space
ntp_server
hostname

Update and monitor server time
loke_server
hostname
JCloud default
Hostname to communicate with monitoring system
loke_managed_enabled
0, 1
1
Enable managed mode using service manager
loker_username

JCloud default
loke_password

JCloud default
loke_app_id


Automatically set if empty in managed mode
loke_app_token


Automatically set if empty in managed mode
loke_bindhost or bindhost


Bind to a specific IP when connecting to Loke server



Monitoring & management

JService itself is connected in real time to the monitoring system Loke, so any events or tampering attempts will be logged centrally.

JService can accept certain remote commands from Loke, like enforced updates.


To monitor physical hardware, the JLinux package ipmitool must be installed by the OS. JService will automatically enable hardware monitoring.

If the server support hardware watchdog, jservice will enable it. This means that if the OS or jservice crash or becomes unresponsive, the hardware will reboot the server.


Running services - manual usage

Default application folder is /etc/app/j/service

Default application configuration folder is /etc/app/j/config

Any application that exists in the folder /etc/app/j/service will be executed and must continuously run without exiting to not trigger a monitoring alert.

Applications receive 1 parameter which is the configfile J-daemons normally use. For example, the daemon testdaemon will be executed as



To add or remove an application, make the necessary change to the files in /etc/app/j/service and send a HUP signal to the jservice daemon: killall -HUP jservice

If you removed a service, the application will receive a TERM signal followed by a KILL signal 10 seconds later if it did not exit.

To change an application or configfile you can just kill the application directly. Some applications support configfile reloading without restart.

Note that the service will be run under the same UID and GID as the owner of the file in /etc/app/j/service


Service manager - automated usage

Please see service manager documentation for how to structure jlinux packages