

I’m not a super-expert but I suspect it’s probably still holding open the stdin and stdout file descriptors of the parent process. Try using &> /dev/null to throw them away and see if that helps. You could also try adding nohup in front of the npx, which does some weird re-parenting jazz to prevent the child process (npx) from actually being attached to the parent process so that it doesn’t get auto-closed when the parent exits, which is kind of the opposite of your problem, but it might also help in this case.
Another possible option is using systemd-run --user <command> which effectively should make it into sytemd’s problem









I recommend Librewolf, it’s a lot more privacy-aggressive out of the box, and you can turn that down a little bit if you need, but otherwise it’s just a more trustworthy Firefox fork as far as I’m concerned. It supports Firefox sync as well (which is telling, because Librewolf takes privacy very seriously and isn’t going to provide too many easy opportunities for you to completely compromise it) Like the other person said sync is E2EE and the hosting server has zero-knowledge of any of your unencrypted data. If Librewolf trusts it, I trust it, and I think you can rest assured that with Librewolf, it’s probably never going to be sabotaged either, which as you imply, is not necessarily true with Firefox.
I don’t recall whether they use Firefox’s sync server directly or if they have their own, but either way, like I said, the server has no knowledge of or access to your unencrypted data.