Файл Syslog с номером 168.5GB, заполняется с помощью & ldquo; Введите y, чтобы принять, n в противном случае & hellip; & rdquo;

Итак, вам нужно сделать несколько вещей для этого:

Обнаруживать, когда наушники отключены; После события в (1) отправьте команду «пауза» в VLC; Обнаруживать, когда наушники снова подключены; После события в (3) отправьте команду «play» в VLC;

Для (1) и (3): вы можете использовать то, что показано здесь. Этот ответ содержит небольшую процедуру для определения разницы между подключенным и отсоединенным разъемом и скриптом, который вы можете изменить, чтобы соответствовать вашему делу.

Для (2) и (4): вы должны использовать VLC Dbus. Соответствующий код должен быть следующим:

dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Pause

dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Play

Для паузы и воспроизведения соответственно.

Теперь о сценарий. В вашем случае это должно выглядеть примерно так:

#!/bin/bash
# This scripts detecs unplugging headphones.

oldstatus="unrelated string"
while [ 1 ]; do
    # The following line has to be changed depending on the difference (use diff) in '/proc/asound/card0/code#0'
    status=$(grep -A 4 'Node 0x16' '/proc/asound/card0/codec#0' |  grep 'Amp-Out vals:  \[0x80 0x80\]')
    if [ "$status" != "$oldstatus" ]; then
        if [ -n "$status" ]; then
            echo "Plugged in"
             dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Play
            oldstatus="$status"
        else
            echo "Unplugged"
            dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Pause
            oldstatus="$status"
        fi
    fi
    # Now sleep for 250 milli-seconds as per @Serg's request (who learnt if from @Fabby)
    # sleep is timer-based so doesn't use *any* processor cycles while sleeping.
    sleep 0.25
done

Добавьте этот модифицированный скрипт в свои приложения для запуска, и вы настроены. Я думаю, что он должен делать то, что вы хотели.

PS - Обратите внимание, что есть более эффективные способы сделать это, например, используя inotify для обнаружения изменений событий (и, возможно, даже других подходов), но это вам нужно начать (а остальные - выше моего уровня и опыта). Я полагаю, вы можете начать с этого «хакерского» подхода и построить отсюда.

0
задан 24 May 2018 в 22:23

6 ответов

ты добавлен скрипт или программу для запуска процесса, который выдает сообщение "[Ф1]", пытается (и терпит неудачу), чтобы прочитать ответ, и снова просит. Исследовать с помощью [F2] и [Ф3]. Убить процесс запроса и исправить ваши скрипты.

5
ответ дан 8 June 2018 в 13:59
  • 1
    ОК. он, кажется, остановился после убийства 1651. Это сломало все, и я должен был перезапустить, но это прекрасно. также получил syslog, очищенный с помощью sudo cat / dev / null & gt; / var / log / syslog, затем снова привязал его, и он делает обычные вещи. благодаря – extrathiccboi 24 May 2018 в 15:50
  • 2
    Вы только что остановили текущую проблему. Если вы не устраните причину, проблема повторится, когда вы войдете в систему. – waltinator 24 May 2018 в 18:08
  • 3
    Неправильно. Он снова завязал. Записан У этого пользователя есть подпись, которая отображается под каждым сообщением, но вы не можете ее просматривать. Пожалуйста, зарегистрируйтесь или войдите: это совсем не сложно, даже полезно! PC nm-dispatcher: req: 1 'dhcp4-change' [wlxe894f61479b0]: запустить запущенные скрипты ... 25 мая 21:22:25 Pat-PC dhclient [9955]: привязан к 000.000.00.000 - обновление за 255 секунд , – extrathiccboi 25 May 2018 в 22:23

ты добавлен скрипт или программу для запуска процесса, который выдает сообщение "Please type y to accept, n otherwise:", пытается (и терпит неудачу), чтобы прочитать ответ, и снова просит. Исследовать с помощью [F2] и pstree -a -c -l -p -u 1651. Убить процесс запроса и исправить ваши скрипты.

5
ответ дан 17 July 2018 в 13:35

Вы добавили скрипт или программу в процесс запуска, который выдает сообщение «Please type y to accept, n otherwise:», пытается (и не удается) читать ответ и снова запрашивает. Исследуйте с помощью ps -ef и pstree -a -c -l -p -u 1651. Убейте запрос и исправьте сценарии запуска.

5
ответ дан 20 July 2018 в 13:40

Чтобы узнать, что программа-нарушитель вызывает бесконечное использование цикла:

$ sudo time grep -rnw --exclude-dir={boot,dev,lib,media,mnt,proc,root,run,sys,/tmp,tmpfs,var} '/' -e 'Please type y to accept, n otherwise'Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/sessionstore-backups/recovery.jsonlz4 matches
Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/sessionstore-backups/recovery.baklz4 matches
Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/places.sqlite matches
Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/places.sqlite-wal matches
10.24user 11.60system 0:50.74elapsed 43%CPU (0avgtext+0avgdata 15268maxresident)k
16205768inputs+0outputs (0major+4553minor)pagefaults 0swaps

У меня нет такой же проблемы, поэтому три перечисленные программы не являются нарушителями.

0
ответ дан 8 June 2018 в 13:59

Чтобы узнать, что программа-нарушитель вызывает бесконечное использование цикла:

$ sudo time grep -rnw --exclude-dir={boot,dev,lib,media,mnt,proc,root,run,sys,/tmp,tmpfs,var} '/' -e 'Please type y to accept, n otherwise'Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/sessionstore-backups/recovery.jsonlz4 matches Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/sessionstore-backups/recovery.baklz4 matches Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/places.sqlite matches Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/places.sqlite-wal matches 10.24user 11.60system 0:50.74elapsed 43%CPU (0avgtext+0avgdata 15268maxresident)k 16205768inputs+0outputs (0major+4553minor)pagefaults 0swaps

У меня нет такой же проблемы, поэтому три перечисленные программы не являются нарушителями.

0
ответ дан 17 July 2018 в 13:35

Чтобы узнать, что программа-нарушитель вызывает бесконечное использование цикла:

$ sudo time grep -rnw --exclude-dir={boot,dev,lib,media,mnt,proc,root,run,sys,/tmp,tmpfs,var} '/' -e 'Please type y to accept, n otherwise'Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/sessionstore-backups/recovery.jsonlz4 matches Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/sessionstore-backups/recovery.baklz4 matches Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/places.sqlite matches Binary file /home/rick/.mozilla/firefox/3vkvi6ov.default/places.sqlite-wal matches 10.24user 11.60system 0:50.74elapsed 43%CPU (0avgtext+0avgdata 15268maxresident)k 16205768inputs+0outputs (0major+4553minor)pagefaults 0swaps

У меня нет такой же проблемы, поэтому три перечисленные программы не являются нарушителями.

0
ответ дан 20 July 2018 в 13:40

Другие вопросы по тегам:

Похожие вопросы: