SOLVED If any lost souls find themselves here in a similar situation let it be known that the file that worked for me was creating a file at ‘%h/.config/systemd/user/google-drive-ocamlfuse.service’ with the following content:
[Unit]
Description=FUSE filesystem over Google Drive
After=network.target
[Service]
ExecStart=google-drive-ocamlfuse %h/googledrive
ExecStop=fusemount -u %h/googledrive
Restart=always
RestartSec=300
Type=forking
[Install]
WantedBy=default.target
Howdy, I have very recently installed Opensuse Tumbleweed alongside Windows 10 (On a seperate drive) and am trying to get things setup to where I can fully transition to linux. One of the first things I have hit a wall on is getting a file to execute on boot using systemd.
I am trying to use this package to be able to access my google drive from Dolphin. And so far it works okay. Except that it doesn’t survive a reboot. I have to run the command:
google-drive-ocamlfuse ~/googledrive
after each reboot in order for the google drive directories to be accessible. So I googled how to make that happen automagically on boot and found this guide that helped me get a startup script going.
I created /usr/local/bin/ocamlfuseStartup.sh as a file that contains the command from before:
google-drive-ocamlfuse ~/googledrive
and verified that it works as intended when I enter ./ocamlfuseStartup.sh from that directory.
I then created another file at /usr/lib/systemd/system/startup.service that contains the following:
[Unit]
Description=Startup Script
[Service]
ExecStart=/bin/bash /usr/local/bin/ocamlfuseStartup.sh
[Install]
WantedBy=multi-user.target
I have no idea what the /bin/bash portion is for because I found it from a googling but without it I get the following error:
startup.service: Main process exited, code=exited, status=203/EXEC
However with it I get this error:
startup.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
which I take to mean that there is something wrong with my ocamlfuseStartup.sh file maybe? But since it works when I manually execute the file I’m kind of at a loss.
I found this thread where it seemed like someone else was having a similar issue but I didn’t really grok what they were talking about.
Any and all help is greatly appreciated!
It looks like its creating a new process and going in the background and systemd cant track it anymore, so it thinks that its exited and tries restarting. I took a link Oscar sent, and I saw that there is a systemd service and the
Type
is set toforking
, I think this could solve the problem, they also have anExecStop
line, id set it toExecStop=fusermount -u %h/googledrive
so it will unmount properly whenever you manually stop the service. So try settingType=forking
, and adding theExecStop
line, hopefully this will stop systemd from restarting it when it hasnt actually exitedHOLY SHIT WE DID IT!!! I have now rebooted several times and the changes you recommended have made it work automagically! I’m so relieved! I can’t thank you enough, and I definitely owe you a beer.