Bug 10440 - bad pause_audio scriptlet (at least for amarok)
: bad pause_audio scriptlet (at least for amarok)
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/hibernate)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2006-12-17 16:34 by
Modified: 2007-01-04 22:19 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-12-17 16:34:18

    
------- Comment #1 From 2006-12-17 16:34:46 -------
--- pause_audio 2006-10-09 18:08:04 +0300
+++ /etc/hibernate/scriptlets.d/pause_audio     2006-12-15 23:49:16 +0200
@@ -28,12 +28,13 @@
     # Pause amaroK
     for auuser in $(ps aux | grep -w '[a]marok' | awk '{print $1}' | sort | 
uniq); do
        FindXServer
-       if [ "`su $auuser -c 'dcop amarok player status'`" = "2" ]; then
-           su $auuser -c 'dcop amarok player pause'
+       if [ "`su - $auuser -c 'dcop amarok player status'`" = "2" ]; then
+           su - $auuser -c 'dcop amarok player pause'
        fi
     done
     # Add your favourite media player here.
     # And then perhaps think up a less horrific way of doing this.
+
     return 0
 }
------- Comment #2 From 2006-12-17 18:03:26 -------
исправлено в alt4
------- Comment #3 From 2006-12-19 20:01:58 -------
спасибо. подозреваю, что остальные тоже надо проверить на предмет использования
окружения. 
(и еще у меня там дозревает поддержка для cmus)
------- Comment #4 From 2006-12-19 20:36:32 -------
su там больше нет
------- Comment #5 From 2006-12-28 15:24:15 -------
(In reply to comment #4)
> su там больше нет

как это, а вот:
    # Pause xmms
    for auuser in $(ps aux | grep -w '[x]mms' | awk '{print $1}' | sort | 
uniq); do
    su $auuser -c 'xmms -u'
    done
    # Pause beep media player
    for auuser in $(ps aux | grep -w '[b]eep-media-player' | awk '{print 
$1}' | sort | uni
q); do
    FindXServer
    su $auuser -c 'beep-media-player -u'
    done

предлагаю заодно добавить поддержку cmus:
    # Pause cmus
    for auuser in $(ps aux | grep -w '[c]mus' | awk '{print $1}' | sort | 
uniq); do
    su - $auuser -c 'cmus-remote -s'
    done

-s, а не -u потому что cmus плохо себя ведет на паузе, если саундкарту 
выхватывают из под носа
------- Comment #6 From 2006-12-28 18:51:11 -------
да, недоглядел
$ grep su\ \\$ /etc/hibernate/scriptlets.d/* -l
lock
pause_audio
xstatus
------- Comment #7 From 2006-12-28 19:02:10 -------
собственно, наск. я понимаю '[a]marok' вместо amarok только во избежание 
race'а? можно вот так:

find_running(){
        ps -o uid=,pid= -C $1
}

find_running cmus | while read uid pid; do
......
done

find_running xmms | while read uid pid; do
......
done
------- Comment #8 From 2006-12-28 19:14:48 -------
а нужно? вызов su исправлен в alt6. cmus тоже добавил
------- Comment #9 From 2006-12-28 19:22:36 -------
отлично.

(ну кажется так аккуратнее, или нет? смотри сам :)