View Issue Details

IDProjectCategoryView StatusLast Update
0008954Talerreleasepublic2024-06-23 18:54
Reporternullptrderef Assigned Tonullptrderef  
PrioritylowSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Target Versionpost-1.0 
Summary0008954: Non-systemd reliance
DescriptionFor platforms like Alpine/Gentoo (using OpenRC), or Docker/Podman (where running systemd is generally considered bad practice & should be avoided d), we need to [be able to] handle:
- Automatically Restarting of Process
- Shared Socket Access
without Systemd.

An example architecture for this would be to have 2 layers; a shell script that simply handles forking & restarting(1) the processes, and a Rust/C/Go wrapper that creates said socket before spawning the bash process (2, as bash cannot start a socket it owns on it's own).
Additional Information(1) This part would be composed of 2 parts: a function that checks if the process dies (and how fast it does so), and restarts it either immediately or after some delay, and a loop that kills the process on an interval (& lets the restart handler start it again)
(2) This part would simply open a socket if the config tells it that it's a Taler component that needs it, then spawn part 1. This part is needed as to ensure that the bash script - and thereby also it's children - have access to the socket. Signals should be passed 1:1 to the child bash script, and if the child dies (inclusive as a result of a signal we send it), we should exit with the exact same code. The user should not need to know that the process they spawned internally runs a bash script, they should be able to send signals to the rust process and get the outcome they expect.

^ Based on a discussion with Christian
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2024-06-16 18:50 nullptrderef New Issue
2024-06-16 18:50 nullptrderef Status new => assigned
2024-06-16 18:50 nullptrderef Assigned To => nullptrderef
2024-06-16 18:52 nullptrderef Description Updated
2024-06-16 18:52 nullptrderef Additional Information Updated
2024-06-16 18:57 nullptrderef Description Updated
2024-06-17 10:33 Christian Grothoff Target Version git (master) => post-1.0
2024-06-23 18:54 nullptrderef Description Updated