this post was submitted on 31 Jul 2023
24 points (100.0% liked)
General Programming Discussion
7794 readers
1 users here now
A general programming discussion community.
Rules:
- Be civil.
- Please start discussions that spark conversation
Other communities
Systems
Functional Programming
Also related
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Your service is starting, as is evident from the logged message "Started My Shell Script."
It's odd that you're using sudo in the script. The script is already run as root by the service. Also, sudo asks for a password, but you can't give it one because you're not running it from the terminal. Xrandr doesn't even need root
I believe the error message is happening because xrandr needs the DISPLAY environment variable, which is inherited by applications launched from the desktop (e.g. by the "startup applications" feature of your desktop environment, from .xinitrc, or when running it from a terminal window)
See https://wiki.archlinux.org/title/Xrandr#Configuration_using_arandr for something you could try
Its odd because i dont know what im doing, i sudo everything lol. So, i also tried what @[email protected] said. Changed the shellscript.service to use commands instead of a script and then checking status in terminal after a restart.
With xrandr it failed with "cant open display" which is what youre talking about. Is what youre saying is that i cant run xrandr before login?
With barrier it failed because "The Barrier GUI requires a display". So, same thing, it cant be done before login??
Yes and yes
Well damn. There goes my hopes and dreams. Thanks for your help.
You can set your service to start after the graphical session starts by adding this line to the [unit] section:
You can also add a require with same target.
If you still need a value for an environment variable, you can set it with "Environment=".
Also as others said, you don't nedd sudo. Systems should manage all of that. Starting, stopping, reload, environment, dependencies and user context.