Can I resize a LVM on LUKS root partition without live media?

When I first started using Linux I set it up with LVM on LUKS just because why not, now I have the following setup ever since:

>>> lsblk                                                                                                                                                                                                                   
sda                      8:0    0 447,1G  0 disk  
├─sda1                   8:1    0     1G  0 part  /boot
└─sda2                   8:2    0 446,1G  0 part  
  └─cryptssd           254:0    0 446,1G  0 crypt 
    ├─vgssd-lvol--root 254:1    0    30G  0 lvm   /
    └─vgssd-lvol--ssd  254:2    0 416,1G  0 lvm   /home/ssd
sdb                      8:16   0   3,6T  0 disk  
└─sdb1                   8:17   0   3,6T  0 part  
  └─crypthdd           254:4    0   3,6T  0 crypt 
    ├─vghdd-lvol--home 254:5    0   3,6T  0 lvm   /home
    └─vghdd-lvol--var  254:6    0    15G  0 lvm   /var
sdc                      8:32   1   3,6G  0 disk  
├─sdc1                   8:33   1   1,9G  0 part  
└─sdc2                   8:34   1     4M  0 part  
sdd                      8:48   0 465,8G  0 disk  
└─sdd1                   8:49   0 465,8G  0 part  
  └─crypthdd_wdc1      254:3    0 465,7G  0 crypt /home/hd2

Lately my system is giving me some warnings about space left in root partition, so I want to shrink my /home/ssd and grow /
Is it possible to do it while using the system? Should I?

As far as I understand it is not possible to change the size of a mounted partition.

It’s generally possible to extend logical volumes and most filesystems while the system is online. Shrinking a filesystem while online is generally considered to be unsafe. It looks like you wouldn’t need to resize the underlying luks device which simplifies the process.

The process I’d choose for myself would consist of something like:

  1. Stop all processes using /home/ssd and umount it (lsof is particularly useful).
  2. fsck the filesystem on vgssd-lvol–ssd before reducing the capacity (resize2fs if you’re using ext2/3/4).
  3. Use lvreduce or lvresize to shrink the logical volume and validate the available space on the physical volume using the pvs command.
  4. fsck first & perform online resize of vgssd-lvol–root beginning with the logical volume (lvextend or lvresize) followed by the filesystem (again, resize2fs if you’re using ext2/3/4).
  5. Validate free space with df and remount /home/ssd.

Suggested reading: LVM - ArchWiki & Resizing LVM-on-LUKS - ArchWiki

You should NEVER attempt any modification of a filesystem/partition/lv without adequate backups. Good luck!

As a side note: 30GB looks like plenty of space to me. Check if you really need to resize / or if you can trim journals and/or cleanup package cache or whatever: