udev: communicate between two rules The 2019 Stack Overflow Developer Survey Results Are In ...
Could an empire control the whole planet with today's comunication methods?
1960s short story making fun of James Bond-style spy fiction
Do warforged have souls?
Identify 80s or 90s comics with ripped creatures (not dwarves)
Do I have Disadvantage attacking with an off-hand weapon?
Can I visit the Trinity College (Cambridge) library and see some of their rare books
US Healthcare consultation for visitors
First use of “packing” as in carrying a gun
Simulating Exploding Dice
Are spiders unable to hurt humans, especially very small spiders?
Did the UK government pay "millions and millions of dollars" to try to snag Julian Assange?
should truth entail possible truth
What information about me do stores get via my credit card?
How to support a colleague who finds meetings extremely tiring?
"is" operation returns false even though two objects have same id
Windows 10: How to Lock (not sleep) laptop on lid close?
Does Parliament hold absolute power in the UK?
Can a flute soloist sit?
Mortgage adviser recommends a longer term than necessary combined with overpayments
Is it ethical to upload a automatically generated paper to a non peer-reviewed site as part of a larger research?
What is the role of 'For' here?
Drawing vertical/oblique lines in Metrical tree (tikz-qtree, tipa)
Sub-subscripts in strings cause different spacings than subscripts
Can the Right Ascension and Argument of Perigee of a spacecraft's orbit keep varying by themselves with time?
udev: communicate between two rules
The 2019 Stack Overflow Developer Survey Results Are In
Unicorn Meta Zoo #1: Why another podcast?
Announcing the arrival of Valued Associate #679: Cesar ManaraScript in udev rule doesn’t runudev rule to auto load keyboard layout when usb keyboard plugged inReloading udev rules failsWriting udev rulesUdev rules on Ubuntu/OMAP (Beaglebone)Udev rules failing to pass parametersudev rules ignore_deviceudev rules exclude deviceHow can I automatically format and write data to an SD card when it is plugged in? (Trigger systemd service on change rather than add.)why udev does not trigger remove event for mounted sdcard partitions?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
Is there a simple way to communicate between two different rules,
one for the ADD event, the other for the BIND event on the same device?
The ADD rule is executed first, afterwards comes the BIND rule. I would like to change how my BIND rule behaves, based on a variable set by the ADD rule.
What I tried so far:
I tried to use
ENV{variable}="1"
at the ADD rule and matching against it at the BIND rule usingENV{variable}=="1"
. Unfortunately this variable is not available in the BIND rule anymore, looks like the lifetime of those ENV variables is limited to only those rules on the same device and the same action (therefore only ADD rules).
ACTION=="add", ENV{MODALIAS}=="abc",
ENV{variable}="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ENV{variable}=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ENV{variable}=="2"
I always thought that ENV variables are available everywhere in udev, but this seems to be wrong...
I also tried to set
ATTR{foo}="bar"
in the ADD rule and matching against it in the BIND rule usingATTRS{foo}=="bar"
. Doesn't work either.
ACTION=="add", ENV{MODALIAS}=="abc",
ATTR{variable}="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ATTRS{variable}=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ATTRS{variable}=="2"
I have no idea why this doesn't work.
The only way that works so far is to
echo
the value of the variable into a file in the ADD rule (usingRUN
) and read it out in the BIND rule usingPROGRAM
andRESULT
.
ACTION=="add", ENV{MODALIAS}=="abc",
RUN+="/bin/bash -c 'echo "1" > /etc/udev/rules.d/variable'"
ACTION=="bind", ENV{MODALIAS}=="abc",
PROGRAM="/bin/bash -c 'cat /etc/udev/rules.d/variable'",
RESULT=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
PROGRAM="/bin/bash -c 'cat /etc/udev/rules.d/variable'",
RESULT=="2"
Any other ideas?
udev
add a comment |
Is there a simple way to communicate between two different rules,
one for the ADD event, the other for the BIND event on the same device?
The ADD rule is executed first, afterwards comes the BIND rule. I would like to change how my BIND rule behaves, based on a variable set by the ADD rule.
What I tried so far:
I tried to use
ENV{variable}="1"
at the ADD rule and matching against it at the BIND rule usingENV{variable}=="1"
. Unfortunately this variable is not available in the BIND rule anymore, looks like the lifetime of those ENV variables is limited to only those rules on the same device and the same action (therefore only ADD rules).
ACTION=="add", ENV{MODALIAS}=="abc",
ENV{variable}="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ENV{variable}=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ENV{variable}=="2"
I always thought that ENV variables are available everywhere in udev, but this seems to be wrong...
I also tried to set
ATTR{foo}="bar"
in the ADD rule and matching against it in the BIND rule usingATTRS{foo}=="bar"
. Doesn't work either.
ACTION=="add", ENV{MODALIAS}=="abc",
ATTR{variable}="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ATTRS{variable}=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ATTRS{variable}=="2"
I have no idea why this doesn't work.
The only way that works so far is to
echo
the value of the variable into a file in the ADD rule (usingRUN
) and read it out in the BIND rule usingPROGRAM
andRESULT
.
ACTION=="add", ENV{MODALIAS}=="abc",
RUN+="/bin/bash -c 'echo "1" > /etc/udev/rules.d/variable'"
ACTION=="bind", ENV{MODALIAS}=="abc",
PROGRAM="/bin/bash -c 'cat /etc/udev/rules.d/variable'",
RESULT=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
PROGRAM="/bin/bash -c 'cat /etc/udev/rules.d/variable'",
RESULT=="2"
Any other ideas?
udev
add a comment |
Is there a simple way to communicate between two different rules,
one for the ADD event, the other for the BIND event on the same device?
The ADD rule is executed first, afterwards comes the BIND rule. I would like to change how my BIND rule behaves, based on a variable set by the ADD rule.
What I tried so far:
I tried to use
ENV{variable}="1"
at the ADD rule and matching against it at the BIND rule usingENV{variable}=="1"
. Unfortunately this variable is not available in the BIND rule anymore, looks like the lifetime of those ENV variables is limited to only those rules on the same device and the same action (therefore only ADD rules).
ACTION=="add", ENV{MODALIAS}=="abc",
ENV{variable}="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ENV{variable}=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ENV{variable}=="2"
I always thought that ENV variables are available everywhere in udev, but this seems to be wrong...
I also tried to set
ATTR{foo}="bar"
in the ADD rule and matching against it in the BIND rule usingATTRS{foo}=="bar"
. Doesn't work either.
ACTION=="add", ENV{MODALIAS}=="abc",
ATTR{variable}="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ATTRS{variable}=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ATTRS{variable}=="2"
I have no idea why this doesn't work.
The only way that works so far is to
echo
the value of the variable into a file in the ADD rule (usingRUN
) and read it out in the BIND rule usingPROGRAM
andRESULT
.
ACTION=="add", ENV{MODALIAS}=="abc",
RUN+="/bin/bash -c 'echo "1" > /etc/udev/rules.d/variable'"
ACTION=="bind", ENV{MODALIAS}=="abc",
PROGRAM="/bin/bash -c 'cat /etc/udev/rules.d/variable'",
RESULT=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
PROGRAM="/bin/bash -c 'cat /etc/udev/rules.d/variable'",
RESULT=="2"
Any other ideas?
udev
Is there a simple way to communicate between two different rules,
one for the ADD event, the other for the BIND event on the same device?
The ADD rule is executed first, afterwards comes the BIND rule. I would like to change how my BIND rule behaves, based on a variable set by the ADD rule.
What I tried so far:
I tried to use
ENV{variable}="1"
at the ADD rule and matching against it at the BIND rule usingENV{variable}=="1"
. Unfortunately this variable is not available in the BIND rule anymore, looks like the lifetime of those ENV variables is limited to only those rules on the same device and the same action (therefore only ADD rules).
ACTION=="add", ENV{MODALIAS}=="abc",
ENV{variable}="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ENV{variable}=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ENV{variable}=="2"
I always thought that ENV variables are available everywhere in udev, but this seems to be wrong...
I also tried to set
ATTR{foo}="bar"
in the ADD rule and matching against it in the BIND rule usingATTRS{foo}=="bar"
. Doesn't work either.
ACTION=="add", ENV{MODALIAS}=="abc",
ATTR{variable}="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ATTRS{variable}=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
ATTRS{variable}=="2"
I have no idea why this doesn't work.
The only way that works so far is to
echo
the value of the variable into a file in the ADD rule (usingRUN
) and read it out in the BIND rule usingPROGRAM
andRESULT
.
ACTION=="add", ENV{MODALIAS}=="abc",
RUN+="/bin/bash -c 'echo "1" > /etc/udev/rules.d/variable'"
ACTION=="bind", ENV{MODALIAS}=="abc",
PROGRAM="/bin/bash -c 'cat /etc/udev/rules.d/variable'",
RESULT=="1"
ACTION=="bind", ENV{MODALIAS}=="abc",
PROGRAM="/bin/bash -c 'cat /etc/udev/rules.d/variable'",
RESULT=="2"
Any other ideas?
udev
udev
edited yesterday
tollo
asked yesterday
tollotollo
1457
1457
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1424242%2fudev-communicate-between-two-rules%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1424242%2fudev-communicate-between-two-rules%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown