I want to start a long running custom script at boot. The script must run under a specific username. So far I have successfully used the screen command and switched to the user in the custom script. But I rather have the screen command run under that user so that I can later login to that user and resume the screen.

This one does work when run as root in the console but it does not work as a line in a startup script.

su -c "screen -S sessionname -d -m /path/cot/bash/script" username

2 Answers 2


Under GNU/Linux at boot, you should not use su (as it depends on PAM/dbus, which may not be available yet), but runuser:

runuser username -l -c "screen -S sessionname -d -m /path/to/bash/script"

When using runuser followed by the user name, the syntax is the same as su.


Got it, I should have used the -l flag:

su -l -c "screen -S sessionname -d -m /path/to/bash/script" username

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .