Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Python script laten opstarten  (gelezen 3974 keer)

Python script laten opstarten
« Gepost op: 2020/12/18, 11:26:18 »
Een vriend heeft een Python script gemaakt om achtergronden te laten veranderen.
Maar hoe kan ik dat script automatisch laten opstarten in Ubuntu 20.04?
Ubuntu 22.04 pc 64 bit  en Ubuntu Server 22.04 met Nextcloud 27

Offline vanadium

  • Lid
Re: Python script laten opstarten
« Reactie #1 Gepost op: 2020/12/18, 11:49:39 »
Via de "opstarttoepassingen" van je desktop. In Ubuntu 20.10 is er een toepassing "Startup Applications" (commando: nome-session-properties), maar het kan zijn dat je voor vroegere versies terecht moet in "Gnome Tweaks", tab "Startup applications". Je kan ook steeds zelf een starter (.desktop bestand) aanmaken in ~/.config/autostart

Re: Python script laten opstarten
« Reactie #2 Gepost op: 2020/12/18, 12:13:57 »
Via de "opstarttoepassingen" van je desktop. In Ubuntu 20.10 is er een toepassing "Startup Applications" (commando: nome-session-properties), maar het kan zijn dat je voor vroegere versies terecht moet in "Gnome Tweaks", tab "Startup applications". Je kan ook steeds zelf een starter (.desktop bestand) aanmaken in ~/.config/autostart
Ik heb het geprobeerd via Opstarten in Gnome Tweaks, maar hij start alsnog niet op.
Dit is het script:
import os
import sys
import random
import time
import subprocess

customArgs = []
customArgs.append('--path=')

path = None

for customArg in customArgs:
    for sysArg in sys.argv:
        sysArg = sysArg.split('=')
        cmd = sysArg[0]
        try:
            val = sysArg[1]
        except:
            continue
        if cmd in customArg:
            if cmd == '--path':
                path = val
               
if path is None:
    path = '/home/rick/Afbeeldingen/Wallpapers'

def ChangeWallp():
    files = []
    try:
        for r, d, f in os.walk(path):
            for file in f:
                files.append(os.path.join(r, file))
        os.system('gsettings set org.gnome.desktop.background picture-uri file:///'+str(random.choice(files)))
        os.system('gsettings set org.gnome.desktop.screensaver picture-uri file:///'+str(random.choice(files)))
    except:
        print('')
    time.sleep(120)
    ChangeWallp()
ChangeWallp()

Hoe krijg ik dit script dan werkend via "startup Applications" ?
Ubuntu 22.04 pc 64 bit  en Ubuntu Server 22.04 met Nextcloud 27

Re: Python script laten opstarten
« Reactie #3 Gepost op: 2020/12/19, 13:59:03 »
Mustangman1966

Ben geen kei met python.
Maar volgens mij heb je twee mogelijkheden in die 'OpstartToepassingen'

A)
Je zet in de opdracht regel:
python <Path/Naam-Script>

B)
Boven in het scrpit de onderstaan regel toeveogen:
#!/usr/bin/python
Script uivoerbaar maken en de opdrachtregel zet je het  <Path/Naam-Script>

De regel #!/usr/bin/python zeg dat het script met python moet worden uitgevoerd.
Als er #!/bin/bash staat is het een bash-script e.d.
Maar moet wel de eerste regel zijn.

Veel plezier ermee.
MvG,
MauRice
Registered Linux user: 473556

Re: Python script laten opstarten
« Reactie #4 Gepost op: 2020/12/19, 14:40:36 »
Werkt dat trouwens ook bij een script dan eindeloos blijft draaien zoals in dit geval? Ik had in Ubuntu MATE een soortgelijk script en uiteindelijk een ander scriptbestand gemaakt van 1 regel om het daadwerkelijk script aan te roepen
/pad/naar/mijnscript.sh && is om het op de achtergrond te draaien.

Maar weet niet hoe dat tegenwoordig in de gewone Ubuntu werkt met opstartscripts.

Re: Python script laten opstarten
« Reactie #5 Gepost op: 2020/12/20, 13:24:19 »
Mustangman1966

Ben geen kei met python.
Maar volgens mij heb je twee mogelijkheden in die 'OpstartToepassingen'

A)
Je zet in de opdracht regel:
python <Path/Naam-Script>

B)
Boven in het scrpit de onderstaan regel toeveogen:
#!/usr/bin/python
Script uivoerbaar maken en de opdrachtregel zet je het  <Path/Naam-Script>

De regel #!/usr/bin/python zeg dat het script met python moet worden uitgevoerd.
Als er #!/bin/bash staat is het een bash-script e.d.
Maar moet wel de eerste regel zijn.

Veel plezier ermee.
Helaas krijg ik het script nog niet aan de praat.

Iemand nog een ander idee?
Ubuntu 22.04 pc 64 bit  en Ubuntu Server 22.04 met Nextcloud 27

Offline MKe

  • Lid
Re: Python script laten opstarten
« Reactie #6 Gepost op: 2020/12/20, 14:05:22 »
Kun je het script wel runnen vanuit de commandline? Overigens is in 20.04 het commando voor Python python3.

Re: Python script laten opstarten
« Reactie #7 Gepost op: 2020/12/23, 15:50:51 »
Kun je het script wel runnen vanuit de commandline? Overigens is in 20.04 het commando voor Python python3.
Ik heb script kunnen draaien vanuit de terminal.

Tevens weet ik nu wat ik niet goed deed.
In Opstarten was ik vergeten in de opdracht regel "python3" ervoor te zetten. Nu werkt hij wel zoals het hoort op mijn laptop.

Ubuntu 22.04 pc 64 bit  en Ubuntu Server 22.04 met Nextcloud 27

Offline Bloom

  • Lid
Re: Python script laten opstarten
« Reactie #8 Gepost op: 2020/12/23, 17:18:49 »
Je kunt ook de she-bang veranderen in:
#!/usr/bin/python3
En dat zorgt er dan voor dat python3 aangeroepen wordt en het is dan niet nodig zelf te beginnen met het aanroepen van python3.