Web lists-archives.com

Re: Help with udev trigger




Thanks. I will try this

On Fri, May 18, 2018 at 12:21 PM, Reco <recoverym4n@xxxxxxxxx> wrote:
>         Hi.
>
> On Fri, May 18, 2018 at 09:26:47AM +0100, Bhasker C V wrote:
>> Hi,
>>
>>  Version: buster
>>  I do a manual cryptsetup to create my home directory after system boots up
>>  I want to run fsck every time the device node is created from luks
>>
>>  I added this udev rule
>>
>> ACTION="change",DEVTYPE="disk",ID_FS_UUID="cf1b64cf-7a62-4a43-ad44-6c68f2bbdec5"
>> RUN+="/bin/btrfsck /dev/mapper/home"
>>
>> But this rule is not getting triggered. Could someone help please to
>> point out what mistake I am doing ?
>
> You have five mistakes here, actually:
>
> 1) udev rules use C-like syntax for comparison (==) and assingment (=).
> Your rule tests nothing, it just assigns some values.
>
> 2) All udev 'attributes' have type, and you must specify it.
> For instance DEVTYPE and ID_FS_UUID are ENVIRONMENT.
>
> 3) 'change' applies to changing device state. It's 'add' for device
> creation.
>
> 4) RUN should go after a coma.
>
> 5) You're not supposed to spawn long-running processes from udev rules
> directly. Utilize systemd.
>
>
> Taking all this into the account, your rule should look like this (one
> like, coma separated values):
>
> ACTION=="add", ENV{DEVTYPE}=="disk",ENV{ID_FS_UUID}=="cf1b64cf-7a62-4a43-ad44-6c68f2bbdec5",RUN+="/bin/systemctl start my_brtfs_home_checking.service"
>
> Your custom service file - like this:
>
> [Service]
> Type=oneshot
> ExecStart=/bin/btrfsck /dev/mapper/home
>
> Reco
>