17.10.2018 23:06, Greg пишет: > Hello all. > > I have a few questions about udev. > > I have tried the net for several hours/days, but much of the udev > documentation out there is over 5 years old and I have had no lucuck > with the following questions: > > Udev. Q1. is it case sensitive? i.e. is kernel=="sd?*" allowed as a > synonym for KERNEL="sd?*" > It is case sensitive. > Udev Q2. What does UDEV define as a "long running process"? Are > there some docs or a udevadm cmd that will report udev compile time > options? A config file that specs that? a systemd unit file that > specs that? > Default is 3 minutes. It can be changed with udevd argument or kernel command line. Note that it applies only to external (non-builtin) commands. > Udev. Q3. Would a command like: systemctl set-environment > GKH="Gregory the Great" qualify as long running? (it takes about > 0.132 secs) > Should not unless connection hangs. > Udev Q4. Could ANY list variable that can be modded with += have TWO > (or more) new terms added to it? > > such as say SYMLINK+="/media/%k","/mnt/%k" ? > As far as I know everything after "+=" is treated as single value which gets added to list of values of this "variable". Where have you seen example of such usage? You would need two "+=" statements with different values. Your example would fail with invalid syntax (unknown keyword after comma). > Udev Q5. Similar to the above I would like to have > RUN+="/path/to/Somecmd %k %n","/path/to/Someothercmd $foo" in some > rule. is that OK? > See above. You need two "RUN+=" statements. Note that timeout is applied to each individual command, not to overall execution time. At least if I interpret code correctly. > Udev. Q6. Is RUN guaranteed to be last? so that PROGRAM will set the > var RESULT before RUN starts its stuff? > Yes, RUN are started after all other rules have been processed. I am not aware of formal design specification, but changing this would have quite some compatibility impact. > Udev. Q7. At what point does SYSTEMD_WANTS take effect? How would I > ensure that say my PROGRAM had set RESULT before the SYSTEMD_WANTS > magic happened? > SYSTEMD_WANTS is evaluated by systemd when it gets notified by udev about device event. This notification is sent by udev after kernel event processing has been completed (including after all RUN have been executed). What follows, it should see any RESULT assignment done as part of rules processing. Note that you need to save RESULT in some environment variable to be accessible. > Udev. Q8. IMPORT and RUN and PROGRAM all have a "type" option one of > which is "builtin" which refers to bultin cmds. where do I get a list > of such builtins? there is nothing in man udev. > I do not think such list exists. You may want to direct your question to systemd list where udev development happens now.