[lug-ld] systemd specifier namenskollision
Ekki Plicht
ekki at plicht.de
Di Aug 13 15:36:34 CEST 2024
lles gut, Frage gelöst.
%% escaped das einzelne %.
Danke & Gruß,
Ekki
P.S.: Morgen ist LUG Abend im ZTL, 19 Uhr Vortrag Christian zu Netfilter.
On 13.08.24 15:27, Ekki Plicht wrote:
> Moin.
>
> In einer systemd-unit gibt es eine Reihe von specifier wie "%Y", "%D"
> usw. Diese specifier werden bei Start der unit 'übersetzt', %Y ist dann
> das Fragment des Pfades, %D ist das shared data directory usw.
>
> Nun möchte ich ein Programm (arecord) nutzen, das ebenfalls solche
> Platzhalter verwendet, aber mit völlig anderer Bedeutung. Da ist %Y das
> Jahr, $D der Tag usw, halt das was strfprint() daraus macht.
>
> Ihr könnt euch vielleicht die Überraschung vorstellen, als aus dem
> Dateinamen-Muster
>
> arecord --use-strftime rec_%y-%m%d_%H-%M-%S.wav
>
> etwas völlig anderes wurde, nämlich
>
>
> rec_/home/ekki/.config/systemd/user-0117b5c45a984b588cca50c3f1e577cd-/run/user/1000/credentials/rec60min.service_grappa--/home/ekki/.local/state.wav'
>
> Weil systemd als erstes drankommt, diese Specifier zu interpretieren,
> dann erst das aufgerufene Programm.
>
> Meine Frage ist also - wie kriege ich es durch Quoting hin, das systemd
> da die Finger von lässt und das Programm machen darf was es will?
>
> '' nur um den Dateinamen rum bringt nix, "" dito
> '' um den ganzen Kommandoaufruf bringt nix, "" dito
>
> Die ExecStart Zeile in der systemd-Unit sieht wie folgt aus:
>
> ExecStart=/usr/bin/arecord -D front:CARD=IC-705,DEV=0 -f S16_LE -r 48000
> -d 60 --use-strftime rec_%Y-%m-%d_%H-%M-%S.wav
>
>
> Danke,
> Ekki
>
>
> _______________________________________________
> lug-ld mailing list
> lug-ld at lists.lug-ld.de
> http://lists.lug-ld.de/mailman/listinfo/lug-ld
Mehr Informationen über die Mailingliste lug-ld