Я сбросил разрешения для /etc/vsftpd.conf
на root: root
через ] sudo chown root: root /etc/vsftpd.conf
и теперь сервер vsftpd
запускается через sudo systemctl restart vsftpd.service
и запускает его вручную через sudo / usr / bin / vsftpd
.
Если вы посмотрите на исходный код deadbeef для main.c , функция help()
перечислит параметры, которых вам должно быть достаточно:
--pause Pause playback
--nowplaying FMT Print formatted track name to stdout
--nowplaying-tf FMT Print formatted track name to stdout
--volume [NUM] Print or set deadbeef volume level
Вот сценарий, который я в итоге использовал. Поскольку опция --volume
еще недоступна в стабильной версии, вместо нее я использовал команды pactl
.
Это таймер обратного отсчета сна для DeaDBeeF. Он поддерживает все, кроме одной функции из моего скрипта Audacious. Они:
Код:
#!/bin/bash
echo "DeaDBeeF control version 0.9"
function_pid=0
echo "true" > /dev/shm/allow_resetting_pactl_volume
function get_default_sink_name() {
pacmd stat | awk -F": " '/^Default sink name: /{print $2}'
}
function get_default_sink_volume() {
pacmd list-sinks | awk '/^\s+name: /{indefault = $2 == "<'$(get_default_sink_name)'>"} /^\s+volume: / && indefault {print $5; exit}'
}
function set_default_sink_volume() {
pactl set-sink-volume $(get_default_sink_name) "$1"
}
#source: https://unix.stackexchange.com/a/251920/15010
function music_sleep(){
countdown=$(($1*60-1))
datestop=$((`date +%s` + $countdown));
echo "pausing DeaDBeeF in $1 minutes..."
#begin reducing sound volume 10 minutes (600 sec) from end
voldown=$(($datestop - 600))
while [ "$datestop" -ge `date +%s` ]; do
datestr=$(printf "%s" $(date -u --date @$(($datestop + 1 - `date +%s`)) +%H:%M:%S))
echo -ne "$datestr\r";
#echo "$datestr";
kdialog --passivepopup "DeaDBeeF will pause in: $datestr" 3
if [ $(</dev/shm/allow_resetting_pactl_volume) == "true" ]; then
countdown_saved_pactl_volume=$(get_default_sink_volume)
echo $countdown_saved_pactl_volume > /dev/shm/countdown_saved_pactl_volume
fi
if [ `date +%s` -ge "$voldown" ]; then
echo "false" > /dev/shm/allow_resetting_pactl_volume
#reduce volume in 40 steps of 2 = 80% reduction (starting at 100) over 10 min
set_default_sink_volume "-2%"
currvol=$(get_default_sink_volume)
echo -ne "\t\tvolume = $currvol\r"
#echo "volume = $currvol"
kdialog --passivepopup "volume = $currvol" 3
fi
sleep 15
done
deadbeef --pause
echo "DeaDBeeF paused at $(date)"
countdown_saved_pactl_volume=$(</dev/shm/countdown_saved_pactl_volume)
set_default_sink_volume "$countdown_saved_pactl_volume"
echo "true" > /dev/shm/allow_resetting_pactl_volume
}
countdown_saved_pactl_volume=$(get_default_sink_volume)
echo $countdown_saved_pactl_volume > /dev/shm/countdown_saved_pactl_volume
echo "initial volume is: $countdown_saved_pactl_volume"
while true; do
choice=$(kdialog --combobox " DeaDBeeF Sleep Timer: " "cancel" "stop" "5" "10" "15" "20" "25" "30" "35" "45" "45" "50" "60" "90" "120" "180" "360" "480" --default "30");
retval="$?"
if [ "$retval" -eq 0 ]; then
if [ $function_pid -ne 0 ]; then
kill $function_pid
function_pid=0
echo "countdown process terminated..."
fi
if [ "$choice" == cancel ]; then
echo "countdown canceled by user at $(date)"
kdialog --passivepopup "countdown canceled" 5
elif [ "$choice" == stop ]; then
deadbeef --stop
echo "DeaDBeeF playback stopped at $(date)"
kdialog --passivepopup "DeaDBeeF playback stopped" 5
else
echo "countdown (re)set by user at $(date)"
kdialog --passivepopup "countdown started" 5
#audresult=$(audtool playlist-shuffle-status)
#if [ "$audresult" == "on" ]; then audtool playlist-shuffle-toggle; fi
isplaying=$(deadbeef --nowplaying-tf "%isplaying%")
ispaused=$(deadbeef --nowplaying-tf "%ispaused%")
echo "isplaying=$isplaying, ispaused=$ispaused"
if [[ "$isplaying" -ne 1 || "$ispaused" -eq 1 ]]; then deadbeef --play-pause; echo "playback started"; fi
music_sleep "$choice" &
function_pid=$!
echo "function_pid=$function_pid"
fi
countdown_saved_pactl_volume=$(</dev/shm/countdown_saved_pactl_volume)
set_default_sink_volume "$countdown_saved_pactl_volume"
echo "reset volume to: $countdown_saved_pactl_volume"
allow_reset_saved_volume="true"
echo "true" > /dev/shm/allow_resetting_pactl_volume
elif [ "$retval" -eq 1 ]; then
echo "exiting DeaDBeeFctl"
break
else
kdialog --error "ERROR";
fi;
done
rm /dev/shm/allow_resetting_pactl_volume
rm /dev/shm/countdown_saved_pactl_volume