Greetings,

> Sent: Friday, May 26, 2023 at 12:02 PM
> From: "daggs" <da...@gmx.com>
> To: "Lennart Poettering" <lenn...@poettering.net>
> Cc: systemd-devel@lists.freedesktop.org
> Subject: Re: [systemd-devel] udev rule, continue to next rule only if preb 
> failed
>
> Greetings Lennart,
>
> > Sent: Friday, May 26, 2023 at 11:23 AM
> > From: "Lennart Poettering" <lenn...@poettering.net>
> > To: "daggs" <da...@gmx.com>
> > Cc: systemd-devel@lists.freedesktop.org
> > Subject: Re: [systemd-devel] udev rule, continue to next rule only if preb 
> > failed
> >
> > On Do, 25.05.23 20:25, daggs (da...@gmx.com) wrote:
> >
> > > Greetings,
> > >
> > > I'm trying to implement the following behavior:
> > > if a usb is added ot removed, run a script before all other existing 
> > > rules but continue to existing iff the script failed
> > > I've added the following rule to /etc/udev/rules.d/5-usb_vm.rules:
> > > ACTION=="add", SUBSYSTEM=="usb", RUN="/usr/local/bin/handle_udev_action"
> > > ACTION=="remove", SUBSYSTEM=="usb", 
> > > RUN="/usr/local/bin/handle_udev_action"
> > >
> > > /usr/local/bin/handle_udev_action runs exit 1 iff the device is a 
> > > specific one (for testing)
> > > but the code continues to the next rule.
> > > is there any way to stop it if the script returned 9?
> >
> > Please see documentation. RUN= is invoked *after* the rules have
> > finished execution.
> >
> > There's IMPORT{program}=, which is run as part of rule processing, but it 
> > can only be used for very quickly
> > running programs, and you have to communicate results of your script
> > via properties you write to stdout rather than exit status.
> >
> > Lennart
> >
> > --
> > Lennart Poettering, Berlin
> >
>
> thank you for the information, I'll into it
>
> Dagg
>

I was able to implement the first part (the detection and action) using import 
without any issues.
but I'm wondering if I can prevent execution of the rest of the rules without 
changing the default usb rule files.
I think it might be done with the goto directive, however I'm nor sure I 
understand how a goto in file one at /etc/udev/rules.d affects another rule 
which gets executed later at /lib/udev/rules.d/
maybe udev knows it by noticing the rules are using shared subsystem and action?

Thanks,

Dagg

Reply via email to