Package com.github.jpmsilva.jsystemd
Class Systemd
java.lang.Object
com.github.jpmsilva.jsystemd.Systemd
- All Implemented Interfaces:
AutoCloseable
The main systemd integration class.
Implements and exposes most of the sd_notify protocol, as well as some convenience methods.
Since this object sets up some timers for periodic communication with systemd, client code is expected to call close() then they no longer need
Systemd instances. The implementation also implements AutoCloseable to ease implementation in DI containers that support the semantic.
- Author:
- Joao Silva
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoidaddStatusProviders(int index, SystemdStatusProvider... providers) Adds the status providers to the list of providers in the specified position.voidaddStatusProviders(int index, List<SystemdStatusProvider> providers) Adds the status providers to the list of providers in the specified position.voidaddStatusProviders(SystemdStatusProvider... providers) Adds the status providers to the end of the list of providers.static @NotNull Systemd.Builderbuilder()Provides a dedicated builder instance that knows how to create Systemd instances.voidclose()voidDisables the periodic extension of the timeout.voidEnables the periodic extension of the timeout.voidForces the timeout to be extended.Returns the current health provider.@NotNull List<SystemdStatusProvider> Returns a read only view of the current providers.booleanisReady()Returns if the application as completed startup.voidLogs information regarding the status of the integration with systemd.voidready()Notifies systemd that the application is ready.voidsetHealthProvider(@Nullable HealthProvider provider) Sets the current health provider, overrides any other previously set.voidsetStatusProviders(@NotNull List<SystemdStatusProvider> providers) Sets the current providers, unregistering any other previously added.voidstopping()Signals that the application is stopping.voidForces the current status to be calculated and sent to systemd.voidwatchdog()Forces the watchdog timestamp to be updated.
-
Method Details
-
builder
Provides a dedicated builder instance that knows how to create Systemd instances.- Returns:
- a builder instance
-
addStatusProviders
Adds the status providers to the list of providers in the specified position.- Parameters:
index- position to add the providersproviders- the providers to add
-
addStatusProviders
Adds the status providers to the end of the list of providers.- Parameters:
providers- the providers to add
-
addStatusProviders
Adds the status providers to the list of providers in the specified position.- Parameters:
index- position to add the providersproviders- the providers to add
-
getStatusProviders
Returns a read only view of the current providers.- Returns:
- the current list of providers
-
setStatusProviders
Sets the current providers, unregistering any other previously added.- Parameters:
providers- the providers to set
-
getHealthProvider
Returns the current health provider.- Returns:
- the current provider
-
setHealthProvider
Sets the current health provider, overrides any other previously set.- Parameters:
provider- the provider to set, ornullto disable the watchdog health integration
-
enablePeriodicExtendTimeout
public void enablePeriodicExtendTimeout()Enables the periodic extension of the timeout.- See Also:
-
disablePeriodicExtendTimeout
public void disablePeriodicExtendTimeout()Disables the periodic extension of the timeout.- See Also:
-
updateStatus
public void updateStatus()Forces the current status to be calculated and sent to systemd. The methodenableStatusUpdate(long, TimeUnit)can be used to enable periodic status updates. -
extendTimeout
public void extendTimeout()Forces the timeout to be extended. The amount of time to extend is specified when the Systemd instance is build withSystemd.Builder.extendTimeout(long, TimeUnit, long), or 29 seconds if otherwise. Timeout extensions can only be sent during startup.- See Also:
-
watchdog
public void watchdog()Forces the watchdog timestamp to be updated. The methodenableWatchdog(long, TimeUnit)can be used to enable periodic watchdog updates.If health provider is set and returns unhealthy the watchdog timestamp is not updated.
-
ready
public void ready()Notifies systemd that the application is ready. -
isReady
public boolean isReady()Returns if the application as completed startup.- Returns:
trueif and only ifreadyhas been called.
-
stopping
public void stopping()Signals that the application is stopping. -
logStatus
public void logStatus()Logs information regarding the status of the integration with systemd. Meant to be used once the application has done sufficient work to initialize logging. -
close
- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-