my post got held up for 7 days. during that time I have thing working
better, but I still have the overall problem of not understanding how to do
this right.

I don't understand the difference between After and Requires.

I don't understand
Requires=graphical.target
given it errors trying to open a gui window, I am assuming because the
window manager is not ready.

However, I have stumbled to a config that is close to what I want.

new status:
system boots, both services run
systemctl restart - both restart
systemctl stop... systemctl start - the 2nd service does not start.

to demo what I am saying, I scripted it.
but im not sure how to show works / does not wor given I am watching color
bar layout on my screen.

+ echo restart works:
+ systemctl restart videoteam-voctocore.service
+ echo stop/start does not:
+ systemctl stop videoteam-voctocore.service
+ sleep 2
+ systemctl start videoteam-voctocore.service
+ journalctl -b

here is the current files status and systemd.log_level=debug journalctl -b
https://veyepar.nextdayvideo.com/temp/sdvm1.txt





On Wed, May 6, 2026 at 6:16 AM Andrei Borzenkov <[email protected]> wrote:

> Boot with systemd.log_level=debug and make the "journalctl -b" output
> available.
>
> On Wed, May 6, 2026 at 1:37 PM Carl Karsten <[email protected]> wrote:
>
>> works when I systemctl startrestart, but not on boot?
>>
>> ovall goal: voctocore (server runs forever) starts, and a
>> client connects, sends some commands, disconnects.   This should happen any
>> time the server starts.  on boot, when I systemctrl restart, if the process
>> errors and systemd restarts it.
>>
>> voctocore is a live video mixer process that often runs headless.  I have
>> it set to open a window to monitor the mix process, but in general it
>> should be treated like a headless server.
>>
>> There are a few clients that will need to connect once the server is up
>> and accepting connections.  The one I am using for this post
>> is voctocore-cmds.py - it sends some config over a network socket.   other
>> clients: save source and mixed video to disk, stream mix to internet,
>> monitor audio and alert when problems are detected.
>>
>>
>>
>>    - core starts on boot. good.
>>    - -cmds does not seem to run (bad)
>>    - systemctl restart core - core restarts (good)
>>    - -cmds does not seem to run (consistent)
>>    - systemctl start -cmds - cmds run! (surprising?)
>>    - systemctl restart core - core restarts and -cmds runs! (good)
>>
>>
>> Here is a dump of all the things.
>> note: the /usr/bin/date can be removed, no change other than no date in
>> the logs.
>>
>> serve voctocore is part of https://github.com/voc/voctomix
>>
>> client
>> https://github.com/CarlFK/voctomix-outcasts/blob/master/voctocore-cmds.py
>>
>> videoteam@gator:~$ sudo systemctl cat  videoteam-voctocore.service 
>> videoteam-voctocore-cmds.service
>> # /etc/systemd/system/videoteam-voctocore.service
>> # lifted from 
>> cm/bundlewrap/bundles/voctocore/files/voctomix2-voctocore.service
>> # dest: /usr/local/lib/systemd/system/voctomix2-voctocore.service
>>
>> [Unit]
>> Description=ccc voctomix core
>> After=network.target
>> After=graphical.target
>>
>> [Service]
>> User=videoteam
>> Group=videoteam
>>
>> Type=notify
>> WorkingDirectory=/opt/voctomix2/release
>> ExecStart=/opt/voctomix2/release/voctocore/voctocore.py -vv --ini-file 
>> /etc/voctomix/voctocore.ini
>> Restart=always
>> RestartSec=1s
>> StartLimitInterval=0
>>
>> Environment=DISPLAY=:0
>> ; Environment=PIPEWIRE_DEBUG=3,pw.conf:5
>>
>> [Install]
>> WantedBy=default.target
>>
>> # /etc/systemd/system/videoteam-voctocore-cmds.service
>> # Ansible Managed
>>
>> [Unit]
>> Description=Voctomix startup commands
>>
>> Wants=videoteam-voctocore.service
>> PartOf=videoteam-voctocore.service
>>
>> After=videoteam-voctocore.service
>>
>> [Service]
>> Type=oneshot
>> RemainAfterExit=yes
>>
>> User=videoteam
>> Group=videoteam
>>
>> ExecStartPre=/usr/bin/sleep 4
>> ExecStart=/home/videoteam/voctomix-outcasts/voctocore-cmds.py -v --delay 2.5 
>> -f /etc/voctomix/vocto.cmds
>> Nice=10
>>
>> [Install]
>> WantedBy=default.target
>>
>>
>> boot box, voctocore runs, but voctocore-cmds does not:
>>
>>
>> videoteam@gator:~$ sudo systemctl status videoteam-voctocore.service 
>> videoteam-voctocore-cmds.service
>> ● videoteam-voctocore.service - ccc voctomix core
>>      Loaded: loaded (/etc/systemd/system/videoteam-voctocore.service; 
>> enabled; preset: enabled)
>>      Active: active (running) since Thu 2026-04-30 03:32:23 CEST; 10min ago
>>  Invocation: f3fdc756aa1741458431e869a869039a
>>    Main PID: 1178 (python3)
>>       Tasks: 49 (limit: 9103)
>>      Memory: 83M (peak: 85.4M)
>>         CPU: 7min 23.214s
>>      CGroup: /system.slice/videoteam-voctocore.service
>>              └─1178 python3 /opt/voctomix2/release/voctocore/voctocore.py 
>> -vv --ini-file /etc/voctomix/voctocore.ini
>>
>> Apr 30 03:32:23 gator voctocore.py[1178]:     INFO AudioMix: Updating mixer 
>> state
>> Apr 30 03:32:23 gator voctocore.py[1178]:     INFO VideoMix: Request 
>> composite fs(cam1,slides)
>> Apr 30 03:32:23 gator voctocore.py[1178]: [ALSOFT] (EE) Failed to connect 
>> PipeWire event context (errno: 112)
>> Apr 30 03:32:23 gator voctocore.py[1178]:     INFO Voctocore: Running. 
>> Waiting for connections....
>> Apr 30 03:32:23 gator voctocore.py[1178]:     INFO Scene: Pushing 1 frame(s) 
>> to source 'cam1' at time 15ms
>> Apr 30 03:32:23 gator voctocore.py[1178]:     INFO Scene: Pushing 1 frame(s) 
>> to source 'slides' at time 15ms
>> Apr 30 03:32:23 gator voctocore.py[1178]:     INFO Pipeline:
>> Apr 30 03:32:23 gator voctocore.py[1178]: ====================== UP AND 
>> RUNNING =====================
>> Apr 30 03:32:23 gator voctocore.py[1178]:     INFO SystemdNotify: READY=1
>> Apr 30 03:32:23 gator systemd[1]: Started videoteam-voctocore.service - ccc 
>> voctomix core.
>>
>> ○ videoteam-voctocore-cmds.service - Voctomix startup commands
>>      Loaded: loaded (/etc/systemd/system/videoteam-voctocore-cmds.service; 
>> enabled; preset: enabled)
>>      Active: inactive (dead)
>>
>>
>> manually starting voctocore-cmds works:
>>
>>
>> videoteam@gator:~$ sudo systemctl start videoteam-voctocore-cmds.service
>>
>> videoteam@gator:~$ sudo systemctl status videoteam-voctocore-cmds.service
>> ● videoteam-voctocore-cmds.service - Voctomix startup commands
>>      Loaded: loaded (/etc/systemd/system/videoteam-voctocore-cmds.service; 
>> enabled; preset: enabled)
>>      Active: active (exited) since Thu 2026-04-30 03:47:53 CEST; 52s ago
>>  Invocation: a44c7092f5aa4b32822e87260b83163b
>>     Process: 5592 ExecStartPre=/usr/bin/sleep 4 (code=exited, 
>> status=0/SUCCESS)
>>     Process: 5626 
>> ExecStart=/home/videoteam/voctomix-outcasts/voctocore-cmds.py -v --delay 2.5 
>> -f /etc/voctomix/vocto.>
>>    Main PID: 5626 (code=exited, status=0/SUCCESS)
>>    Mem peak: 5.9M
>>         CPU: 89ms
>>
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: composite lec_43(cam1,slides)
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: sending: transition 
>> pip(cam1,slides)
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: composite pip(cam1,slides)
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: sending: transition 
>> pip(slides,cam1)
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: composite pip(slides,cam1)
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: sending: set_stream_blind 
>> blinder
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: error unknown command 
>> set_stream_blind
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: sending: set_stream_live
>> Apr 30 03:47:53 gator voctocore-cmds.py[5626]: error unknown command 
>> set_stream_live
>> Apr 30 03:47:53 gator systemd[1]: Finished videoteam-voctocore-cmds.service 
>> - Voctomix startup commands.
>>
>>
>> and now restarting core also restarts -cmds what I expect/want to happen at 
>> boot.
>>
>> videoteam@gator:~$ sudo systemctl restart videoteam-voctocore.service
>> (both core and -cmds run )
>>
>> So, what do?
>> --
>> Carl K
>>
>

-- 
Carl K

Reply via email to