[GH-ISSUE #1102] New scripts get spawned on each config reload #1751

Closed
opened 2026-05-22 22:54:30 +01:00 by JakeStanger · 1 comment
Owner

Originally created by @postsolar on GitHub (Aug 1, 2025).
Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/1102

Describe the bug

New scripts get spawned on each ironbar reload.

To reproduce
Steps to reproduce the behavior:

  1. Add module script

For example:

    {
      "cmd": "tail -f /dev/null",
      "mode": "watch",
      "type": "script"
    }
  1. Issue an ironbar reload a few times
  2. Observe there are many child processes instead of just one

Expected behavior

Either reuse the previous instance upon reload and don't create new ones, or kill it before spawning the new one.

System information:

  • Distro: NixOS
  • Compositor: Hyprland
  • Ironbar version: 106e23e311

Configuration

Config
{
  "center": [
    {
      "cmd": "tail -f /dev/null",
      "mode": "watch",
      "type": "script"
    }
  ]
}
Styles

Additional context

Screenshots

Image
Originally created by @postsolar on GitHub (Aug 1, 2025). Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/1102 **Describe the bug** <!-- A clear and concise description of what the bug is. --> New scripts get spawned on each ironbar reload. **To reproduce** Steps to reproduce the behavior: 1. Add module `script` For example: ```json { "cmd": "tail -f /dev/null", "mode": "watch", "type": "script" } ``` 3. Issue an `ironbar reload` a few times 4. Observe there are many child processes instead of just one **Expected behavior** <!-- A clear and concise description of what you expected to happen. --> Either reuse the previous instance upon reload and don't create new ones, or kill it before spawning the new one. **System information:** - Distro: NixOS - Compositor: Hyprland - Ironbar version: 106e23e3116db02d57c548820024163c38491370 **Configuration** <!-- Share your bar configuration and stylesheet as applicable: --> <details><summary>Config</summary> ```json { "center": [ { "cmd": "tail -f /dev/null", "mode": "watch", "type": "script" } ] } ``` </details> <details><summary>Styles</summary> ```css ``` </details> **Additional context** <!-- Add any other context about the problem here. --> **Screenshots** <!-- If applicable, add screenshots to help explain your problem. --> <img width="402" height="268" alt="Image" src="https://github.com/user-attachments/assets/565bb160-7732-410b-83ed-14aa8e253c07" />
JakeStanger 2026-05-22 22:54:30 +01:00
Author
Owner

@JakeStanger commented on GitHub (Aug 4, 2025):

I suspect the play here is that running script handles need to be stored somewhere (possibly just against the Ironbar global), and some sort of reload signal needs to be sent that kills all the processes.

Re-attaching might be possible but trickier, as a config reload means it won't be a 1:1 mapping between processes. I guess if processes were hashed against their command it wouldn't be difficult to diff them.

<!-- gh-comment-id:3151162005 --> @JakeStanger commented on GitHub (Aug 4, 2025): I suspect the play here is that running script handles need to be stored somewhere (possibly just against the Ironbar global), and some sort of reload signal needs to be sent that kills all the processes. Re-attaching might be possible but trickier, as a config reload means it won't be a 1:1 mapping between processes. I guess if processes were hashed against their command it wouldn't be difficult to diff them.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
JakeStanger/ironbar#1751
No description provided.