Как делают меня 'avconv' каждый m4a в dir к mp3s?

pidof и pgrep поможет, если Вы захотите написать сценарий этого (и обойтись без сомнительного ps | lots | of | things идиома). Можно также отфильтровать uid, ценурозом, ppid, самый старый, новейший и т.д.

Команда kill -0 $pid может использоваться, чтобы подтвердить, что существует определенный идентификатор процесса.

Могут быть сложности, если у Вас есть несколько экземпляров в различных каталогах, через которые Вы не можете сказать различие между ними ps. В зависимости от платформы Вы можете отличать их легко cwd, например, на проверке Linux /proc/$PID/cwd.

# pgrep httpd
9483
9492
9493
9497
# head -1 /usr/local/apache2/logs/httpd.pid
9483
# kill -0 `head -1 /usr/local/apache2/logs/httpd.pid` && echo $?
0
# ls -l /proc/9483/cwd /proc/9483/exe
lrwxrwxrwx 1 root root 0 2013-01-30 19:40 /proc/9483/cwd -> /
lrwxrwxrwx 1 root root 0 2013-01-30 19:37 /proc/9483/exe -> /usr/local/apache2/bin/httpd

(извините, $CWD Apache не слишком интересен...),

Ваш netstat может также смочь помочь также:

# netstat -plnt | grep :80
tcp        0      0 192.168.123.123:80       0.0.0.0:*               LISTEN     9483/httpd

Наиболее часто используемый прием в сценариях запуска, привыкших к управляющим процессам, которые не хороши об управлении файлом PID, должен запустить их non-daemonizing/non-forking способом как фоновое задание с & (хотя, очевидно, программа должна иметь флаг non-daemonizing, иногда называемый как inetd режим), и запись $! в файл PID самостоятельно.

pstree полезный инструмент для того, чтобы разыскать иерархии процесса:

#  pstree -lnp 9483
httpd(9483)-+-rotatelogs(9484)
            |-rotatelogs(9485)
            |-rotatelogs(9486)
            |-rotatelogs(9491)
            |-httpd(9492)
            |-httpd(9493)-+-{httpd}(9495)
            |             |-{httpd}(9496)
            |             |-{httpd}(9498)
            |             |-{httpd}(9499)
            |             |-{httpd}(9502)
            |             |-{httpd}(9504)
        [... lots more threads snipped ...] 

Как последнее прибежище lsof многоплатформенный инструмент для отслеживания вещей холмы файлом, соединением или PID.

Для стандартного процесса система типов супервизора проверяют daemontools пакет DJB. Его сайтом является http://cr.yp.to/daemontools.html, хотя откровенно документация может быть немного тупой, существует много учебного руководства как доступные страницы.

Существует некоторое время загрузка альтернатив (не использована мной) перечисленный здесь: https://serverfault.com/questions/192302/alternative-to-daemontools-djbtools-to-supervise-unix-processes

12
20.04.2014, 07:03
1 ответ

Чтобы сделать один файл:

$ avconv -i m.m4a m.mp3

Чтобы сделать пакет, вы можете обернуть это в цикл for:

$ for i in *.m4a; do
    avconv -i "$i" "${i/.m4a/.mp3}"
done

Это возьмет все файлы, которые присутствуют в текущем каталоге с расширением .m4a и запустит каждый из них через avconv. Второй аргумент, ${i/.m4a/.mp3}, выполняет замену содержимого переменной $i, меняя .m4a на .mp3.

ПРИМЕЧАНИЕ: В качестве подстрочника:

$ for i in *.m4a; do avconv -i "$i" "${i/.m4a/.mp3}"; done
30
27.01.2020, 19:54

Теги

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