linux - Make a script identify DBUS session address and use it

07
2014-07
  • AudioTroubler

    I'm using cron with notify-send to display some notifications, but it requires DBUS session to run

    Here is the script:

        export DBUS_SESSION_BUS_ADDRESS=[session]
    #!/bin/sh
    {
        DISPLAY=:0 /usr/bin/notify-send Some text "More text"
    } 
    

    I can find the current session with set | grep DBUS_SESSION_BUS_ADDRESS

    How can i make the script do that and replace [session] with the found address?

    Im using ubuntu 14.04, 64bit

  • Answers
    Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

    Related Question

    linux - Verify that a cron job has completed
  • CaseyIT

    Is there a command that can be run to verify that a users cron job has run successfully?

    Platform is Ubuntu 8.04 LTS.

    I have scripts in /home/useraccount/bin/

    running

    crontab -l
    

    while logged in as user results in:

    # m h  dom mon dow   command
    
    @hourly /home/useraccount/bin/script_1
    
    @hourly /home/locateruser/bin/script_2
    

    I realize scripts could send email or write to a log with a timestamp, but wondering if there is just a way to verify it ran from the command line.

    EDIT :

    I ran

    ps -ef|grep cron 
    

    ... and it shows

    root      4358     1  0 Mar12 ?        00:00:00 /usr/sbin/cron
    

    Not sure if this indicates it is running the jobs though....


  • Related Answers
  • Dennis Williamson
    grep scriptname /var/log/syslog
    
  • gr33d

    /var/log/cron

    you can check to if its currently running with:

    ps aux
    
  • Benjamin Bannier

    To make sure a script completed successfully one should really use a temp file. Create it when the job starts and delete it when it finished. This also catches crashes and avoids running the same job again in case of errors.

    #!/bin/bash
    
    # check if there is already a temp file with suffix .myscript in /tmp,
    # if file exists return with status of 666
    [ -f /tmp/*.bla ] && exit 666
    
    # create a temp file with suffix .myscript
    TEMP_FILE=`mktemp --suffix .myscript`
    touch $TEMP_FILE
    
    #
    # script stuff
    #
    
    # we are done, clean-up after ourselves
    rm $TEMP_FILE
    
  • Dremation

    You can also have results emailed to you.

    30 3 * * * find /home/*/Maildir/.Spam/{new,cur}/ -type f -mtime +6 -delete| \
               mail -e -s "task #1 report" [email protected]