Hur få pythonskript för gnome att funka i unity

Här diskuteras programmering och utveckling
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Hur få pythonskript för gnome att funka i unity

Inlägg av viper »

Hello,

Jag anpassade en gång ett tillängligt skript till att skapa en procedur för autobackup vid utloggning. Det är ett pythonskript som lägges i uppstartprogram för att känn av när kontot loggar ut för att då ropa på ett loggautbackup.sh som kör en inkrementell roterande rsync.

Nu när jag skulle återinföra denna procedur visade det sig att det inte fungerar längre.

Tydligen är det så att när pythonskriptet skrevs var det gnome som var skrivbordsmiljön och därför händer inget nu i Unity. Körning i terminal svarar att vissa delar av gnome saknas.

Kan man enkelt skriva om pythonskriptet att passa för Unity alternativt installera något som behövs, eller är det bara att skapa manuell backup med programstartare som ropar på loggautbackup.sh?

Behövs fler detaljer? Let me know! :)

Tack på förhand!

EDIT 160307: Förtydligade att det inte är jag själv som skrivit skriptet
Senast redigerad av 1 viper, redigerad totalt 7 gånger.
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
Användarvisningsbild
Pink Panther
Inlägg: 3050
Blev medlem: 08 feb 2009, 02:13
OS: Linux Mint
Utgåva: Vet inte/ingen utgåva passar
Ort: Luna

Re: Hur få pythonskript för gnome att funka i unity

Inlägg av Pink Panther »

Det bör vara möjligt att utföra följande "Kan man enkelt skriva om pythonskriptet att passa för Unity alternativt" Men då får du presentera ditt pythonskript så medlemmar i forumet som är duktiga på "Unity alternativt" kan bistå med hjälp om någon sådan är tillgänglig.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Hur få pythonskript för gnome att funka i unity

Inlägg av Osprey »

Förmodligen räcker det att installera de "vissa delar av gnome som saknas", det vill säga någon form av länkbibliotek. De flesta program som är utvecklade för Gnome eller KDE går ju som sådana bra att köra i Unity...

Vad skriver den mer exakt i felutskriften du får...?
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
viper
Inlägg: 394
Blev medlem: 22 nov 2009, 16:41
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Torslanda

Re: Hur få pythonskript för gnome att funka i unity

Inlägg av viper »

Hej igen!

Se nedan de efterfrågade exemplen:

Själva kodsnutten:

Kod: Markera allt

#!/usr/bin/env python
#
#Original Author: Seamus Phelan
#
#This program runs a custom command/script just before gnome shuts 
#down. This is done the same way that gedit does it (listening for 
#the 'save-yourself' event).  This is different to placing scipts 
#in /etc/rc#.d/ as the script will be run before gnome exits.
#If the custom script/command fails with a non-zero return code, a 
#popup dialog box will appear offering the chance to cancel logout
#
#Usage: 1 - change the command in the 'subprocess.call' in 
#           function 'session_save_yourself' below to be what ever
#           you want to run at logout.
#       2 - Run this program at every gnome login (add via menu System 
#           -> Preferences -> Session)
# 
#VERSION: pythonloggaut
#
#Code:

import sys
import subprocess
import datetime

import gnome
import gnome.ui
import gtk
import os
#import os.system(usr/lib/kontobackup)

class Namespace: pass
ns = Namespace()
ns.dialog = None


def main():
    prog = gnome.init ("gnome_save_yourself", "1.0", gnome.libgnome_module_info_get(), sys.argv, [])
    client = gnome.ui.master_client()
    #set up call back for when 'logout'/'Shutdown' button pressed
    client.connect("save-yourself", session_save_yourself)
    client.connect("shutdown-cancelled", shutdown_cancelled)


def session_save_yourself( *args):
    #Lets try to unmount all truecrypt volumes
#    retcode = subprocess.call("usr/lib/kontobackup.sh", shell=True)
#    retcode = os.system(/usr/lib/kontobackup.sh)
    retcode = os.system("/usr/lib/kontobackup.sh")
    if retcode != 0:
        #command failed  
        show_error_dialog()
    return True
#    if retcode !<> 0:
#        #command lyckades  
#        backup_in_progress()
#    return True


def shutdown_cancelled( *args):
    if ns.dialog != None:
        ns.dialog.destroy()
    return True




def show_error_dialog():
    ns.dialog = gtk.Dialog("There was a problem running your pre-shutdown script",
                           None,
                           gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                           ("There was a problem running your pre-shutdown script - continue logout", gtk.RESPONSE_ACCEPT))
    if ns.test_mode == True:
        response = ns.dialog.run()
        ns.dialog.destroy()
    else:
        #when in shutdown mode gnome will only allow you to open a window using master_client().save_any_dialog()
        #It also adds the 'Cancel logout' button
        gnome.ui.master_client().save_any_dialog(ns.dialog)




#Find out if we are in test mode???
if len(sys.argv) >=2 and sys.argv[1] == "test":
    ns.test_mode = True
else:
    ns.test_mode = False

if ns.test_mode == True:
    main()
    session_save_yourself()
else:
    main()
    gtk.main()

Felmeddelandet jag får när jag försöker starta det i terminalen:

Kod: Markera allt

Traceback (most recent call last):
  File "/home/administrator/Ubuntu/autobackup/pythonloggaut.py", line 30, in <module>
    import gnome
ImportError: No module named gnome
"line 30" om man räknar första raden som #1 är "import datetime"

Tack på förhand!
Per
Oortodox generalist
1 x 20.04 Desktop, 2 x 18.04 Desktop, 2 x 18.04 Server
Skriv svar

Återgå till "Programmering och webbdesign"