When launching my snap from the terminal, I need the user to be able to close the terminal window without it stopping the snap app from running.
In core18 I would use a command ending with an ampersand like this in YAML:
desktop-launch python3 $SNAP/main.py &
https://stackoverflow.com/questions/13338870/what-does-at-the-end-of-a-linux-command-mean
But core20 won’t allow the ampersand &
at the end, which is how I disassociate the terminal command from the terminal session when launching the app.
How should I accomplish this same goal in core20?
Some people call it “running in the background,” or “spawning,” or “detaching the process.”
Thanks in advance!
ogra
March 1, 2021, 2:40pm
2
i never tried this, but perhaps you could ship nohup
(from the coreutils package) in your snap and prefix your command with it ?
Any idea how one would add nohup
in such a way that it will actually compile the snap? I’m running python 3.6.9 if that matters.
I initially tried just adding it to the command, but got this error while snapping:
The specified command 'nohup desktop-launch python3 $SNAP/main.py' defined in the app does not exist.
I tried adding coreutils
to stage-packages
and also to build-packages
, but got the same error.
I tried adding coreutils
to requirements.txt and got these two errors:
ERROR: Could not find a version that satisfies the requirement coreutils (from -r /root/project/requirements.txt (line 1)) (from versions: none)
ERROR: No matching distribution found for coreutils (from -r /root/project/requirements.txt (line 1))
Thanks to anyone with a suggestion!
ogra
March 1, 2021, 4:37pm
4
stage-packages should be enough to get it into your snap, i think you need to recraft your command:
and use full paths for everything after nohup … or switch to using command-chain …