I’ve found out the hard way: Running the script during startup, and running it using the proper user authorization, are two different things.
And environment —
DISPLAY
andPATH
in particular.You’re right and I’m dumb. I forgot to absolute-ify one of the paths, which caused the script to be dependent on my user environment, which isn’t loaded by the desktop file.
Knowing that the environment is finicky, I made sure to only use absolute paths to all files and executables.
But thanks for the hint.
What are you using as a Desktop Environment? Certain with DEs the Autostart programs need to be added in the config file.
Cinnamon.
Which config file?
According to the Arch Wiki you need to place the .desktop file in:
~/.config/autostart/*****.desktop
You also need to add the following line to the .desktop file:
X-GNOME-Autostart-enabled=true
But that’s probably the hard way to do it, I think the settings panel should also have a Startup Application tab.
Thanks for looking that up. That’s where my desktop file is located. And it has the
X-GNOME-Autostart-enabled=true
line. The settings panel does have a Startup Application tab, and that’s what I used. It created the .desktop file in the appropriate location.surprised_pikachu_face.jpeg
Check your journald and/or make your script log it’s actions.
Script > ~/script.log
Weird that it doesn’t work. The usual way to run scripts on startup is through systemd units though. That has the added benefits of automatically logging all output and letting you control it through commands like
systemctl enable <unit name>
. It’s a really neat system, and I highly recommend learning it if you see yourself doing this kind of automation more often.I do that when I want it running with root privileges.
In case of user privileges though, the autostart is a better idea.You can also get cron to do it.
I miss the days of just sticking it in /etc/rc.local
When all else fails…
crontab -e
@reboot sleep 300 && sudo ./myshell.sh
(this is actually broken on some distros)
I’ve been in the systemd world so long none of my systems even have cron
That sounds like a sad world. I like cron
Though, not every cron supports that.
Also, if you are packaging software, you have to do it the right way. But if not, it’s often easier to go and install an init script.
I actually edited my comment right as you were responding. It’s definitely broken in some distros, I think debian/ubuntu.
It’s not broken. You just have to get a cron that supports it. Debian has at least one that does, but it’s not the default one.
Thanks.
man 5 crontab
says the@reboot
syntax is supported, so I’ll give that a try if I don’t stumble upon a different solution.Why the long delay?
Just to make sure it pops off after fully starting up. I run a lot of old hardware, so it’s useful for me. You may not need a delay.
Never heard of a .application file
Normally you need a .desktop file
Indeed, I made this meme from memory and got the extension wrong.
I corrected the meme. Thanks for pointing out the error
“Can you mount the /media/user/Backup drive on startup?”
“Sure.”
“… where is it?”
“Somewhere else.”
gnome-terminal -- sh -c "my_command"
This will open that command in new terminal window at login