Сработало использование звукового активатора и AAXtoMP3 . С помощью нескольких настроек AAXtoMP3 также преобразуется в FLAC.
Спасибо @Stéphane за отличный ответ. Но в моем случае лучшим решением было объединить мои скрипты в качестве приложения для Mac OSX. Вы можете управлять именем своего процесса в файле Info.plist вашего проекта.
Вам нужно установить имя процесса. В некоторых системах присвоение значения $0
будет работать, но не в Linux (по крайней мере, не с моей версией ruby
), где ruby
только устанавливает аргумент список (как показано в ps -f
или ps -o args
), но не имя процесса (как в lsof
или ps
/ps -o comm
) (perl -e '$0 = "foo"'
будет работать, поскольку perl
устанавливает и имя процесса, и список аргументов).
Для этого в Linux вам нужно сделать:
prctl(PR_SET_NAME, "newname")
системный вызов.
Хотя вы могли бы сделать:
$ ruby -e 'syscall(157, 15, "foo"); system("ps")'
PID TTY TIME CMD
5679 pts/4 00:00:01 zsh
8639 pts/4 00:00:00 foo
8641 pts/4 00:00:00 ps
Значение системного вызова будет зависеть от архитектуры (здесь 157 для amd64).
Однако поиск prctl
в исходном коде ruby
ничего не дает, поэтому я подозреваю, что в ruby
для него нет стандартной поддержки. ]. Process.setproctitle()
также не устанавливает имя процесса.
@Jessehz на SO предлагает решение, использующее fiddle
для вызова функции pctrl()
в библиотеке C (при условии, что динамически подключаемый ruby
Я полагаю):
$ ruby -e 'require "fiddle"; Fiddle::Function.new(
Fiddle::Handle["prctl".freeze], [Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP],
Fiddle::TYPE_INT).call(15, "foo"); system("ps")'
PID TTY TIME CMD
5931 pts/5 00:00:02 zsh
8943 pts/5 00:00:00 foo
8945 pts/5 00:00:00 ps