You are not logged in.
Solution:See 3rd post by 65kid.
Ok I'm trying to learn how to automate the execution of a script I wrote to run whenever a specific usb device is plugged in. In this case a usb flash drive with a specific partition identified though UUID following the path /dev/disk/by-uuid/specified-partion's-uuid.
Basically the script uses rsync to update a snapshot of my system which I made bootable on this device. following the guide given in the wiki on full system backup using rsync I edited the --exclude options to ignore the contents of my /boot/ /etc/fstab and /etc/mkinitcpio.conf since the fstab entries, hooks array and initramfs and kernel images generated with them needed to be changed so as to make this snapshot bootable and adapted for use on the usb stick.
the ultimate goal is to have a bootable snapshot the can be updated with whatever changes have been made with my system(i.e. pacman -Syu updates,config changes etc...) while leaving out the important things needed to have the usb still bootable afterwards. I've already succeeded at getting the script to work but I have to mount it manually then execute the script myself and I know that it works afterwards as I can still boot from the stick afterwards.
This is not a question about rsync (which is why the script isn't posted here), to repeat myself, It's about how to execute ANY custom script whenever a specific device is plugged in. More specifically when a storage device with a certain uuid is detected after the device has been plugged in. I believe it may be different for running pure systemd and so that was the reasoning for having it mentioned in the subjects title(if I'm wrong then correct my understanding). If anything a few pointers on where to look would be appreciated. I've been googling and reading the wiki a bit with nothing specific on how to approach this. If an example of the script is requested I'll post it but it's not relevent to my question.
For a general veiw of my setup regarding external storage volumes I do not automount anything as I do not use all the things I plug in in the same manner. Some of the stuff I do requires them to be unmounted or mounted to different mount points(specified by me). The script handles the mounting part by itself just fine. The idea I have is to run it automatically when the flash drive is present. Any suggestions?
Last edited by Thme (2012-12-29 00:06:56)
"Hidden are the ways for those who pass by, for light is perished and darkness comes into being." Nephthys:
Ancient Egyptian Coffin Texts
Offline
udev rules
Edit: read this http://www.reactivated.net/writing_udev_rules.html
Last edited by WonderWoofy (2012-09-22 20:40:07)
Offline
if you mount the device from the script you could do something like this:
[Unit]
After=dev-....device
[Service]
ExecStart=/my/script.sh
[Install]
WantedBy=dev-....device
systemctl enable script.service
the service should then be started when the device is plugged in.
to get the unit name of the partition, check the output of:
systemctl --all --full -t device
Offline
that reminds me, you can use the SYSTEMD_WANTS tag in udev to start the service when the device is plugged in. this is documented in "man systemd.device" (and according to the man page this is actually the recommended method).
it is however not supported to start long running processes via RUN+=.
Offline
That is a good point... it would be an awfully long process. I didn't really think that one over very well now did I?
Offline
Thanks for the feedback. I wasn't sure if the method described for systemd was what I was looking for but now I'm starting to make more sense of how systemd works. A service file makes so much sense too as it was essentially what I wanted to learn for other purposes as well. when I have it up and running ill post it and mark this as solved. and the tag in udev makes a lot of sense as well. I'm considering adding to the wiki on the rsync method for updating a bootable snapshot on thumbdrives. This would make the setup self working afterwards for those with large enough flash drives.
"Hidden are the ways for those who pass by, for light is perished and darkness comes into being." Nephthys:
Ancient Egyptian Coffin Texts
Offline
I seem to remember a developer (falcondy?) saying that udev rules shouldn't even be used for mounting so I imagine running a full back up as well would amount to outright exploitation .
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
You "seem to remember" has FUD potential, could you care to find the post again?
Online
You "seem to remember" has FUD potential, could you care to find the post again?
he is probably referring to this: https://bbs.archlinux.org/viewtopic.php … 2#p1113682
imho this is way different, the SYSTEMD_WANTS tag is completely ok to use. yes, he may be mounting the drive from the script, but imho he is not "exploiting" anything here. I personally don't see a much more elegant way to do this.
these automount udev rules were however crappy and hackish. They were created by people who are like "but udisks is bloat!!1!" and whoever wrote them didn't really seem to know what he was doing because, for example, unmounting a device after it was unplugged from the system is completely non-sense.
Offline
Yes. That was it - thank you.
And I had in mind the inclusion of the backup itself in the udev rule - not the use of the SYSTEMD_WANTS tag. (I don't know anything about the latter but others clearly do.)
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
Perhaps ldm package will be of interest to you...............
It mounts by uuid any usb device inserted.
Prediction...This year will be a very odd year!
Hard work does not kill people but why risk it: Charlie Mccarthy
A man is not complete until he is married..then..he is finished.
When ALL is lost, what can be found? Even bytes get lonely for a little bit! X-ray confirms Iam spineless!
Offline