Nowe posty

xx Dystrybucja pod HP Omen (6)
2024-03-27, 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Mp3 player w Centos 4  (Przeczytany 10713 razy)

piotrino

  • Gość
Mp3 player w Centos 4
« dnia: 2013-05-18, 00:50:59 »
Witam wszystkich. Mam jedną pracę do zrobienia u siebie. Jest komputer z systemem CentOS 4. Jest on uruchamiany z konsoli. Mam zainstalować w komputerze kartę dzwiękową i poprowadzić dwa głośniki z karty dzwiękowej przez wzmacniacz na przód sklepu. I tu mam pytanie, jaki program najlepiej zainstalować na Centosie do słuchania muzyki w sklepie. Kierownik chce żeby można było skonfigurować czas i odstępy grania róznych plików muzycznych. Znajomy poradził mi zainstalować ogg123 lub ogg321 do konfiguracji tego. Czy z poziomu konsoli można to wszystko zainstalować? Czy w środowisku graficznym to wszystko robić (o ile będzie taka możliwość). I do tego mp3 player do zainstalowania... Nie wiem w jakiej kolejności to wszystko ogarnąć. Jakby to było na windowsie robione, to by nie było robione. Ale wszystko muszę zrobić w CentOS'ie... Jak najlepiej to ogarnąć? Pozdrawiam

alvaro

  • Gość
Mp3 player w Centos 4
« Odpowiedź #1 dnia: 2013-05-18, 05:28:22 »
CentOS 4 nie jest już wspierany. Jego wsparcie zakończyło się 2012-02-29.

Sugeruję zapoznać się z Red Hat Enterprise Linux Life Cycle. RHEL 4 (na którym bazuje CentOS 4) przeszedł w fazę Extended Life Phase. Jego wsparcie jest jeszcze możliwe do 2015-02-28 po wykupieniu subskrypcji. Nowsze wydania (5 i 6) są wspierane o 3 lata dłużej (10+3 zamiast 7+3).

Z tego co jednak widzę, repozytoria CentOS 4 nadal są dostępne.
W takiej sytuacji (gdy migracja na nowszy system jest niemożliwa czy nieopłacalna) proponowałbym instalację mpd 0.9.3 (lub mpd 0.9.2) i mpc 0.9.2. MPD (Music Player Daemon) to odtwarzacz muzyczny działający jako serwer dźwięku zaś mpc to interfejs tekstowy do niego. Po pobraniu pakietów (np. za pomocą programu wget czy curl) można je zainstalować poleceniem rpm (rpm -ivh program.rpm). Można się także pokusić o próbę instalacji nowszych pakietów rpm (rpm -Uvh program.rpm) a w razie problemów (np. z glibc) przebudować problematyczny pakiet z pakietu *.src.rpm (rpmbuild --rebuild program.src.rpm) czy pliku *.spec (rpmbuild -ba program.spec). Może być tutaj konieczna instalacja plików nagłówkowych (pakiety devel) i dodatkowych narzędzi (za pomocą yum).
Na stronie projektu na sf.net są dostępne nowsze wersje w postaci źródłowej (*.tar.gz czy *.tar.bz2).

Program mpc da się stosunkowo łatwo oskryptować, można jednak pomyśleć nad bardziej rozbudowanym klientem z pseudo-graficznym interfejsem w ncurses jak ncmpc czy ncmpc++ (ncmpcpp).

piotrino

  • Gość
Mp3 player w Centos 4
« Odpowiedź #2 dnia: 2013-05-18, 10:11:16 »
Dzięki za odpowiedz. A co sądzisz o ogg123, lub ogg321 i do tego mpplayer . Mam trochę nacisk  zeby w tych programach skonfigurować.... Czy jest możliwe użyć tych programów w CentOS? Pozdrawiam

P.S Próbuję pobrac plik mpd 0.9.2  przez komendę wget:
wget http://ftp.pbone.net/mpd-0.9.2-1.i386.rpm
ale dostaję komunikat  404 not found.. Pewnie zła ścieżka do pliku... Ok pokombinuję jeszcze

alvaro

  • Gość
Mp3 player w Centos 4
« Odpowiedź #3 dnia: 2013-05-18, 13:12:35 »
Pobieranie

Pobranie mpd w wersji 0.9.3:
wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/m/mu/musicpd/OldFiles/mpd-0.9.3-1.i386.rpm
lub 0.9.2:
wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/m/mu/musicpd/OldFiles/mpd-0.9.2-1.i386.rpm
Pobranie mpc w wersji 0.9.2:
wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/m/mu/musicpd/mpc/0.9.2/mpc-0.9.2-1.i386.rpm
Gdybyś miał problemy z pobieraniem możesz zawsze spróbować pobrać pakiet z innego serwera. Listę mirrorów w przypadku wyszukiwarki pakietów http://rpm.pbone.net/ znajdziesz na stronie z informacjami o pakiecie. Linki podałem w poprzednim poście.

mpg123 i mpg321

Z tego co kojarzę ogg123 służy do odtwarzania wyłącznie plików Ogg Vorbis. O ogg321 nie słyszałem.
Może chodziło Ci o mpg123 (i386, x86_64) i mpg321 (i386, x86_64)?

Moim zdaniem mpd ma znacznie większe możliwości, ale kto co woli.

mplayer

Nie spotkałem się także z programem mpplayer. Może chodziło Ci o mplayer (i386, x86_64)?

Repozytoria

Zauważ, że te pakiety pochodzą z repozytorium DAG (Dag Apt Repository)/RPMforge (RepoForge). Rozważ dodanie repozytorium RepoForge (i386, x86_64).

Repozytorium RepoForge należy używać bardzo ostrożnie. Znacznie pewniejsze są repozytoria takie jak EPEL czy RPM Fusion. Niestety, to ostatnie nie jest już dostępne dla EL4.
Przy używaniu dodatkowych repozytoriów zalecam korzystanie z takich mechanizmów jak ProtectBase czy Priorities.

Zamiast wyszukiwać pakiety na http://rpm.pbone.net/ możesz sprawdzić czy nie ma ich w dostępnych repozytoriach. Korzystanie z repozytoriów jest zalecaną metodą instalacji oprogramowania. Pobieranie pakietów na własną rękę powinno być praktykowane tylko w uzasadnionych przypadkach (jeśli nie są dostępne w repozytoriach).

Wyszukiwanie pakietów w domyślnie dostępnych repozytoriach:
yum search mpg123 mpg321 mplayer
Wyszukiwanie pakietów w domyślnie dostępnych repozytoriach i rpmforge-extras:
yum --enablerepo="rpmforge-extras" search mpg123 mpg321 mplayer
Wyszukiwanie pakietów w domyślnie dostępnych repozytoriach i wszystkich repozytoriach rpmforge:
yum --enablerepo="rpmforge*" search mpg123 mpg321 mplayer
Wyszukiwanie pakietów we wszystkich repozytoriach:
yum --enablerepo="*" search mpg123 mpg321 mplayer
Analogicznie wygląda instalacja:
yum --enablerepo="*" install mpg123 mpg321 mplayer
Uwaga! Zawsze sprawdzaj przed potwierdzeniem instalacji co i z jakich repozytoriów ma zostać zainstalowane. Nieostrożne korzystanie z dodatkowych repozytoriów może narobić bałaganu w systemie, który ciężko odwrócić.

piotrino

  • Gość
Mp3 player w Centos 4
« Odpowiedź #4 dnia: 2013-05-18, 14:10:45 »
Dzięki jeszcze raz za pomoc. Coś widzę że bez twojej pomocy się nie obejdę :). W repozytoriach nie mam mpg123 mplayer. Mam prośbę mógłbym mi podać ściezkę przez wget żebym sciągnął mpg123 mplayer?  Ściągnę paczkę .rpm i zainstaluję w Centosie.  Bo przez yuma nie da rady..
Tu mam pytanie informacyjne do ciebie. Czy jak zainstaluję mpg123 to w tym ustawiam parametry głośności , wyboru muzyki, i czasu muzyki?  Cały czas operuję w terminalu!. Wszystko muszę skonfigurować z poziomu terminalu...Na razie testuję na virtualbox'e , na którym mam zainstalowanego CentOSa 4.4. W przyszłym tygodniu będę operował na Centosie na sklepie. I to musze wcześniej potestować. Pliki muzyczne wgram na koncu do Centosa.  Pozdrawiam i dzięki za pomoc. Muszę to wszystko ogarnąć testowo, żeby to wprowadzać potem.

P.S W pliku CentOS-Base.repo mam takie ustawienia:
# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://vault.centos.org/4.4/os/$basearch
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#released updates
[update]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://vault.centos.org/4.4/os/$basearch
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
baseurl=http://vault.centos.org/4.4/os/$basearch
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://vault.centos.org/4.4/os/$basearch
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://vault.centos.org/4.4/os/$basearch
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
baseurl=http://vault.centos.org/4.4/os/$basearch
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
P.S Muszę niestety zainstalować ogg123 i mplayer, z tego co się dowiedziałem.

piotrino

  • Gość
Mp3 player w Centos 4
« Odpowiedź #5 dnia: 2013-05-18, 21:10:08 »
W koncu na virtualbox'e na centosie udało mi się zainstalować paczkę vorbis-tools i muzykę przez ogg123 puscza mi , ale bez głosu... :) Dojdę co i jak. Zainstalowałem Centosa tego samego na drugim fizycznym dysku. Zainstalowałem  paczke vorbis-tools, ale przy uruchomieniu ogg123 wyskakuje mi błąd:
Could not load default driver and not driver specified in config file
Muszę dojść co i jak żeby uruchomić ogg123... Karta dzwiękowa , która wykrywa mi przez lspci to:
Audio device: Nvidia Corporation MCP61 HDA
Grunt ze coś mocno do przodu ruszyło:)
W VB muzyka się włącza przez ogg123 ale głosu nie ma...
Cóż to nie windows, i wiedziałem ze tak łatwo nie pójdzie. Pozdrawiam

alvaro

  • Gość
Mp3 player w Centos 4
« Odpowiedź #6 dnia: 2013-05-19, 08:01:29 »
Pobieranie

Linki do stron z informacjami o pakietach podałem w poprzednim poście.
Tam znajdują się bezpośrednie linki do pobrania pakietów (w sekcji Download).

Tak jak wspomniałem wcześniej, zalecam instalację pakietów z repozytoriów.
Jest wygodniejsza, generalnie zapewnia aktualizację pakietów (chociaż w przypadku EL4 może być z tym krucho), ale co najważniejsze - rozwiązuje zależności i pobiera potrzebne dodatkowe pakiety.

Aby dodać repozytorium RepoForge (dawniej RPMFusion) należy posłużyć się:
- dla wersji 32-bitowej systemu:
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el4.rf.i386.rpm
rpm -Uvh rpmforge-release-0.5.3-1.el4.rf.i386.rpm
- dla wersji 64-bitowej systemu:
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el4.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.3-1.el4.rf.x86_64.rpm
Pakiet dodaje w katalogu repozytoriów (/etc/yum.repos.d/) następujące pliki: mirrors-rpmforge, mirrors-rpmforge-extras, mirrors-rpmforge-testing, rpmforge.repo. Ten ostatni zawiera informację o repozytorium rpmforge (pozostałe zawierają listy mirrorów). Pakiet nie modyfikuje plików z oryginalnymi repozytoriami (np. CentOS-Base.repo).
# rpm -qlp rpmforge-release-0.5.3-1.el4.rf.i386.rpm | grep -E "^/etc/yum\\.repos\\.d/"
/etc/yum.repos.d/mirrors-rpmforge
/etc/yum.repos.d/mirrors-rpmforge-extras
/etc/yum.repos.d/mirrors-rpmforge-testing
/etc/yum.repos.d/rpmforge.repo
# rpm -qlp rpmforge-release-0.5.3-1.el4.rf.x86_64.rpm | grep -E "^/etc/yum\\.repos\\.d/"
/etc/yum.repos.d/mirrors-rpmforge
/etc/yum.repos.d/mirrors-rpmforge-extras
/etc/yum.repos.d/mirrors-rpmforge-testing
/etc/yum.repos.d/rpmforge.repo
Jak już wspomniałem, przy używaniu dodatkowych repozytoriów zalecam korzystanie z z takich mechanizmów jak ProtectBase czy Priorities. Więcej informacji o poszczególnych repozytoriach znajdziesz na stronie CentOS czy Scientific Linux.

Instalacja

Po dodaniu repozytorium można instalować z niego pakiety za pomocą yum.

Instalacja mpg123 i mpg321:
yum --enablerepo="rpmforge" install mpg123 mpg321
Instalacja mplayer:
yum --enablerepo="rpmforge" install mplayer mplayer-tools mplayer-gui mplayer-doc
Może się zdarzyć, że nazwa programu który chcemy zainstalować niekoniecznie zgadza się z nazwą pakietu, w którym się on znajduje.
Wtedy możemy się posłużyć następującym poleceniem:
yum --enablerepo="*" provides "*/ogg123"
Otrzymamy listę pakietów, w którym znajduje się dany plik.

Przykładowa pozycja:
1:vorbis-tools-1.2.0-7.el6.x86_64 : The Vorbis General Audio Compression Codec
                                  : tools
Repo        : sl
Matched from:
Filename    : /usr/bin/ogg123
Z powyższej informacji wynika, że w pakiecie vorbis-tools z repozytorium sl znajduje się poszukiwany plik (i jest zapewne programem, bo znajduje się w /usr/bin/).

Wtedy wystarczy już tylko zainstalować wskazany pakiet:
yum install vorbis-tools
Przydatnym narzędziem może okazać się także repoquery.
Pozwala ono m. in. na sprawdzenie zawartości pakietu przed jego instalacją.
# repoquery -l vorbis-tools
/usr/bin/ogg123
/usr/bin/oggdec
/usr/bin/oggenc
/usr/bin/ogginfo
/usr/bin/vorbiscomment
/usr/share/doc/vorbis-tools-1.2.0
/usr/share/doc/vorbis-tools-1.2.0/AUTHORS
/usr/share/doc/vorbis-tools-1.2.0/COPYING
/usr/share/doc/vorbis-tools-1.2.0/README
/usr/share/doc/vorbis-tools-1.2.0/ogg123rc-example
/usr/share/locale/be/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/cs/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/da/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/es/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/fr/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/hr/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/hu/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/nl/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/ro/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/ru/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/sv/LC_MESSAGES/vorbis-tools.mo
/usr/share/locale/uk/LC_MESSAGES/vorbis-tools.mo
/usr/share/man/man1/ogg123.1.gz
/usr/share/man/man1/oggdec.1.gz
/usr/share/man/man1/oggenc.1.gz
/usr/share/man/man1/ogginfo.1.gz
/usr/share/man/man1/vorbiscomment.1.gz
Alternatywnie możemy pobrać pakiet za pomocą yumdownloader:
yumdownloader vorbis-tools
a następnie sprawdzić jego zawartość za pomocą rpm:
rpm -qlp vorbis-tools*
czy:
rpm -qlp vorbis-tools-1.2.0-7.el6.x86_64.rpm
Aby sprawdzić zawartość już zainstalowanych pakietów również możemy posłużyć się programem rpm:
rpm -ql vorbis-tools
Architektura

Jeśli nie wiesz czy masz wersję 32-bitową czy 64-bitową systemu możesz to sprawdzić za pomocą programu uname.
# uname -r
2.6.32-358.6.2.el6.x86_64
# man uname
# uname -m
x86_64
# uname -p
x86_64
# uname -i
x86_64
Napis x86_64 wskazuje, że jest to wersja 64-bitowa zaś i386, i486, i586 czy i686, że jest to wersja 32-bitowa.

Żeby sprawdzić co wspiera Twój procesor (a w rezultacie jaką wersję systemu możesz na nim zainstalować) możesz się posłużyć następującą komendą (dotyczy tylko architektury x86/x86_64):
# grep flags /proc/cpuinfo | uniq | tr " " "\\n" | grep -E "^((rm)|(tm)|(lm))$" | sed -r -e "s/^rm$/16/;s/^tm$/32/;s/^lm$/64/" | sort -nu
32
64
mpg123, mpg321 i ogg123

mpg123, mpg321 czy ogg123 to są stosunkowo proste programy. Nie oczekuj od nich zbyt wiele.

Możesz je za to łatwo oskryptować w bash, perl, python, ruby czy czym tam chcesz.

Z tego co widzę w manualach (linki powyżej) obsługują one playlisty.

Głośność zalecałbym ustawiać poprzez mikser dźwięku, np. alsamixer. Znajduje się on w pakiecie alsa-utils.

Jeśli chodzi o brak dźwięku, spróbuj wymusić użycie sterownika alsa:
ogg123 -d alsa sample.ogg
Jeśli nadal będziesz miał problemy to może nie masz zainstalowanych potrzebnych pakietów alsa.

W takim przypadku zainstaluj je:
yum install alsa-lib alsa-utils
mplayer

MPlayer ma większe możliwości. Zachęcam do zapoznania się z nimi poprzez różne poradniki, np. na YouTube.

MPlayer potrafi ponadto wyświetlać wideo korzystając z fbdev czy DirectFB a więc bez X11. Oczywiście X11 także wspiera.

piotrino

  • Gość
Mp3 player w Centos 4
« Odpowiedź #7 dnia: 2013-05-19, 12:46:43 »
Dzięki za pomoc. Repozytorium RepoForge dodałem. Zainstalowałem też  bez problemów:
yum install alsa-lib alsa-utils
Ustawiłem głosność w alsamixer, ale mimo tego nie mam głosu przy włączeniu muzyki muzyka.ogg
Przy komendzie wymuszającej alsa:
ogg3 -d alsa sample.ogg
dostaję komunikat:
No such device alsa
Wszystko jest poprawnie sciagnięte i zainstalowane. Głośność steruję przez alsamixer, ale mimo to głosu nie mam. System jest w virtualbo'xe zainstalowany.
Kartę dzwiękową która mi wykrywa przez komendę lspci -v | grep - i audio to:
Intel Corporation 82801AA AC'97
.


P.S Zobaczę też dla celów testowych MPlayera, jak się domyślam MPlayera sciągam przez yum ?
Czy ogg123 obsługuje pliki mp3?
Czy te repozytorium mogę dodać też do CentOS 5 lub 6
rpm -Uvh rpmforge-release-0.5.3-1.el4.rf.x86_64.rpm
Dopiero będę wiedział na jakim CentOSsie będę pracował w tygodniu.

Edit:
Znalazłem niby rozwiązanie przez dodanie 09:
ogg3 -d alsa09 sample.ogg
i ruszyło ale głosu dalej nie ma
Sam nie wiem co o tym sądzić
W alsamixer ustawiłem glosnosć wyżej, ale mimo zwiększenia master off - master mam ustawione na off. Nie wiem może tu jest przyczyna
Przy normalnym wpisywaniu:
ogg123 nostalgia.ogg
uruchamia się normalnie, ale bez głosu w głośnikach.

EDIT:
Działa!, wyłaczyłem master off i działa. Ale tragicznie mi odbiera plik, skrzeczy, szumi...Można to jakoś ustawić? Pokombinuję jeszcze...Grunt ze już to wszystko rozgryzłem , dzięki Twojej pomocy!!!. Jeszcze raz dziękuję!!! Byle mi czysto odbierało....

alvaro

  • Gość
Mp3 player w Centos 4
« Odpowiedź #8 dnia: 2013-05-19, 16:19:30 »
Możliwe, że masz wyciszony dźwięk (muted). W takim przypadku po uruchomieniu miksera alsamixer wciśnij m.

Instrukcję jak zainstalować mplayer podałem w poprzednim poście.
yum --enablerepo="rpmforge" install mplayer mplayer-tools mplayer-gui mplayer-doc
Tak jak już mówiłem w drugim moim komentarzu (czwartym w wątku) z tego co wiem ogg123 nie obsługuje plików mp3. Podałem także mpg123 oraz mpg321 jako alternatywę. Radzę uważniej czytać komentarze.

Możesz korzystać z RepoForge (RPMForge) pod CentOS 3, CentOS 4, CentOS 5 i CentOS 6 (a także pod każdym innym EL: Red Hat Enterprise Linux, Scientific Linux, Oracle Linux i prawdopodobnie White Box Enterprise Linux):
- Red Hat Enterprise Linux 3/4/5/6
- CentOS 3/4/5/6
- Scientific Linux 3/4/5/6
- Oracle Linux 4/5/6
- White Box Enterprise Linux 3/4

Jednak pakiet, który podałem do zainstalowania dotyczy tylko EL4, a więc Red Hat Enterprise Linux 4, CentOS 4, Scientific Linux 4, Oracle Linux 4, White Box Enterprise Linux 4.
Na stronie RepoForge (RPMForge) znajdują się pakiety przeznaczone dla innych wersji EL: EL3, EL4, EL5, EL6.

Linki do informacji o dodatkowych repozytoriach również podałem w poprzedniej odpowiedzi.

piotrino

  • Gość
Mp3 player w Centos 4
« Odpowiedź #9 dnia: 2013-05-19, 19:46:39 »
Ok, i wszystko działa. W ogg123 w alsamixer ustawiłem głośność przez "m" ale tragicznie mi odbiera przez głośniki. Nie wiem co jest tego problemem. Z ciekawośći zainstaluję mplayera, i zobaczę jak to działa w mplayerze. Facet uparł sięna ogg123 zeby było zainstalowane na Centosie.  Ostatnie pytanie. W jaki sposób mogę ustawić (czy jest taka możliwość) żeby po wyłaczeniu i właczeniu komputera z Centosem automatycznie mi puszczało nagrania? Coś w skryptach by było trzeba to skonfigurować jak się domyślam, a w  skryptach jestem na out....Pozdrawiam

Przy próbie instalacji mplayera:
yum --enablerepo="rpmforge" install mplayer mplayer-tools mplayer-gui mplayer-doc
dostaję komunikat:

Error getting repository data for rmpforge , repository not found
P.S Gdzie mogę zapisać ustawienia głośnośći na stałe po wyłaczenie i właczeniu komputera. Przy wyłaczeniu i właczeniu na nowo trzeba ustawiać głośność w alsamixer.
Podaję alsa.conf
#
#  ALSA library configuration file
#

# pre-load the configuration files

@hooks [
{
func load
files [
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]

# load card-specific configuration files (on request)

cards.@hooks [
{
func load
files [
{
@func concat
strings [
{ @func datadir }
"/cards/aliases.conf"
]
}
]
}
{
func load_for_all_cards
files [
{
@func concat
strings [
{ @func datadir }
"/cards/"
{ @func private_string }
".conf"
]
}
]
errors false
}
]

# defaults

defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.surround71.card defaults.pcm.card
defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0

#
#  PCM interface
#

pcm.hw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_PCM_DEVICE
]
default {
@func refer
name defaults.pcm.device
}
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.pcm.subdevice
}
}
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}

pcm.plughw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_PCM_DEVICE
]
default {
@func refer
name defaults.pcm.device
}
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.pcm.subdevice
}
}
type plug
slave.pcm {
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
}

pcm.plug {
@args [ SLAVE ]
@args.SLAVE {
type string
}
type plug
slave.pcm $SLAVE
}

pcm.dmix {
@args [ SLAVE FORMAT RATE ]
@args.SLAVE {
type string
default "hw:0,0"
}
@args.FORMAT {
type string
default S16_LE
}
@args.RATE {
type integer
default 48000
}
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave {
pcm $SLAVE
format $FORMAT
rate $RATE
}
}

pcm.dsnoop {
@args [ SLAVE FORMAT RATE ]
@args.SLAVE {
type string
default "hw:0,0"
}
@args.FORMAT {
type string
default S16_LE
}
@args.RATE {
type integer
default 48000
}
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave {
pcm $SLAVE
format $FORMAT
rate $RATE
}
}

pcm.shm {
@args [ SOCKET PCM ]
@args.SOCKET {
type string
}
@args.PCM {
type string
}
type shm
server $SOCKET
pcm $PCM
}

pcm.tee {
@args [ SLAVE FILE FORMAT ]
@args.SLAVE {
type string
}
@args.FILE {
type string
}
@args.FORMAT {
type string
default raw
}
type file
slave.pcm $SLAVE
file $FILE
format $FORMAT
}

pcm.file {
@args [ FILE FORMAT ]
@args.FILE {
type string
}
@args.FORMAT {
type string
default raw
}
type file
slave.pcm null
file $FILE
format $FORMAT
}

pcm.null {
type null
}

pcm.default {
type plug
slave.pcm {
type hw
card {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
device {
@func igetenv
vars [
ALSA_PCM_DEVICE
]
default {
@func refer
name defaults.pcm.device
}
}
subdevice {
@func refer
name defaults.pcm.subdevice
}
}
}

# redirect to load-on-demand extended pcm definitions
pcm.cards cards.pcm
# some links for easy use
pcm.front cards.pcm.front
pcm.rear cards.pcm.rear
pcm.center_lfe cards.pcm.center_lfe
pcm.side cards.pcm.side
pcm.surround40 cards.pcm.surround40
pcm.surround41 cards.pcm.surround41
pcm.surround50 cards.pcm.surround50
pcm.surround51 cards.pcm.surround51
pcm.surround71 cards.pcm.surround71
pcm.iec958 cards.pcm.iec958
pcm.spdif cards.pcm.iec958
pcm.modem cards.pcm.modem

#
#  Control interface
#

ctl.hw {
@args[ CARD ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_CTL_CARD
ALSA_CARD
]
default {
@func refer
name defaults.ctl.card
}
}
}
type hw
card $CARD
}

ctl.shm {
@args [ SOCKET CTL ]
@args.SOCKET {
type string
}
@args.CTL {
type string
}
type shm
server $SOCKET
ctl $CTL
}

ctl.default {
type hw
card {
@func getenv
vars [
ALSA_CTL_CARD
ALSA_CARD
]
default {
@func refer
name defaults.ctl.card
}
}
}

#
#  RawMidi interface
#

rawmidi.hw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_RAWMIDI_CARD
ALSA_CARD
]
default {
@func refer
name defaults.rawmidi.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_RAWMIDI_DEVICE
]
default {
@func refer
name defaults.rawmidi.device
}
}
}
@args.SUBDEV {
type integer
default -1
}
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}

rawmidi.default {
type hw
card {
@func getenv
vars [
ALSA_RAWMIDI_CARD
ALSA_CARD
]
default {
@func refer
name defaults.rawmidi.card
}
}
device {
@func igetenv
vars [
ALSA_RAWMIDI_DEVICE
]
default {
@func refer
name defaults.rawmidi.device
}
}
}

rawmidi.virtual {
@args [ MERGE ]
@args.MERGE {
type string
default 1
}
type virtual
merge $MERGE
}

#
#  Sequencer interface
#

seq.default {
type hw
}

seq.hw {
type hw
}

#
#  HwDep interface
#

hwdep.hw {
@args [ CARD DEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_HWDEP_CARD
ALSA_CARD
]
default {
@func refer
name defaults.hwdep.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_HWDEP_DEVICE
]
default {
@func refer
name defaults.hwdep.device
}
}
}
type hw
card $CARD
device $DEV
}

hwdep.default {
type hw
card {
@func getenv
vars [
ALSA_HWDEP_CARD
ALSA_CARD
]
default {
@func refer
name defaults.hwdep.card
}
}
device {
@func igetenv
vars [
ALSA_HWDEP_DEVICE
]
default {
@func refer
name defaults.hwdep.device
}
}
}

#
#  Timer interface
#

timer_query.hw {
type hw
}

timer_query.default {
type hw
}

timer.hw {
@args [ CLASS SCLASS CARD DEV SUBDEV ]
@args.CLASS {
type integer
default {
@func refer
name defaults.timer.class
}
}
@args.SCLASS {
type integer
default {
@func refer
name defaults.timer.sclass
}
}
@args.CARD {
type string
default {
@func refer
name defaults.timer.card
}
}
@args.DEV {
type integer
default {
@func refer
name defaults.timer.device
}
}
@args.SUBDEV {
type integer
default {
@func refer
name defaults.timer.subdevice
}
}
type hw
class $CLASS
sclass $SCLASS
card $CARD
device $DEV
subdevice $SUBDEV
}

timer.default {
type hw
class {
@func refer
name defaults.timer.class
}
sclass {
@func refer
name defaults.timer.sclass
}
card {
@func refer
name defaults.timer.card
}
device {
@func refer
name defaults.timer.device
}
subdevice {
@func refer
name defaults.timer.subdevice
}
}
Gdzieś wyczytałem ze w pliku alsa.conf muszę zmienić  coś z off na on. Ale nic tu nie widzę. Muszę znalezc ten link.

alvaro

  • Gość
Mp3 player w Centos 4
« Odpowiedź #10 dnia: 2013-05-19, 23:29:28 »
Ustawienia głośności

Po ustawieniu głośności z roota wydaj polecenie:
alsactl store
Powinno zapisać stan do pliku /etc/asound.state.

Uruchamianie skryptów ze startem systemu

Za zarządzanie serwisami w EL odpowiada chkconfig.
Stwórz własny skrypt zgodnie z poradnikiem i zarządzaj nim za pomocą chkconfig.
 
O runlevelach możesz poczytać na Wikipedii.

Do edycji plików możesz się posłużyć programem nano czy mcedit.

Instalacja mplayer

Spróbuj:
yum install mplayer mplayer-tools mplayer-gui mplayer-doc
lub:
yum --enablerepo="*" install mplayer mplayer-tools mplayer-gui mplayer-doc
Dostałeś komunikat, że nie masz repozytorium rmpforge (nie, że jest nieaktywne - nie ma go w ogóle).

To jakie masz repozytoria możesz sprawdzić za pomocą:
yum repolist all
Alternatywnie możesz spróbować czegoś takiego:
grep -E "^\\[" /etc/yum.repos.d/*
Zastanawia mnie ta spacja przed przecinkiem w komunikacie błędu.
Na pewno dobrze skopiowałeś polecenie?
Nie dałeś czasem:
yum --enablerepo="rpmforge " install mplayer mplayer-tools mplayer-gui mplayer-doc
zamiast:
yum --enablerepo="rpmforge" install mplayer mplayer-tools mplayer-gui mplayer-doc
Hm?

piotrino

  • Gość
Mp3 player w Centos 4
« Odpowiedź #11 dnia: 2013-05-20, 00:22:53 »
Dzięki. Instalowanie mplayera pobawię się pózniej. Co do skryptu uruchamiającego ogg123 na starcie systemu z jakąś muzyką, to nie wiem czy sobie z tym poradzę, i czasu mam bardzo mało na to. Pojutrze najpózniej zaczynam montowanie tego wszystkiego włacznie z instalacja na Centosie ogg123. Jakby dało radę, to mam prośbe., czy mógłbyś mi napisać przykładowy skrypt do uruchamiania ogg123 na starcie systemu z jakąs muzyka.ogg? Nie musi być cały skrypt, resztę postaram się uzupełnić sam. Nigdy nie pisałem w bashu.... Jeśli nie zgodzisz się, to trudno.!, jakoś będę musiał sobie poradzić w tak krótkim czasie. Ale i tak dzięki za wszystko, za twoją pomoc. Mam nadzieję że na kompie nie będę miał dużo problemów... Pozdrawiam

Edit:
Mplayer się zainstalował, nie miałem zainstalowanego repozytorium z REPO.Teraz wszystko działa.

alvaro

  • Gość
Mp3 player w Centos 4
« Odpowiedź #12 dnia: 2013-05-20, 14:39:56 »
A co ja z tego będę miał? ;-)

Najprostszy skrypt wyglądałby mniej więcej tak:
#!/usr/bin/env bash

ogg123 plik1.ogg 2> /dev/null
sleep 1
ogg123 plik2.ogg 2> /dev/null
sleep 1
mpg123 plik1.mp3 2> /dev/null
sleep 10
mpg123 plik2.mp3 2> /dev/null
A więc do odtwarzania *.mp3 wykorzystujemy mpg123 a do odtwarzanie *.ogg wykorzystujemy ogg123.
Do odstępów między utworami wykorzystujemy sleep.

Można to jeszcze zapętlić:
#!/usr/bin/env bash

while true; do
  ogg123 plik1.ogg 2> /dev/null
  sleep 1
  ogg123 plik2.ogg 2> /dev/null
  sleep 1
  mpg123 plik1.mp3 2> /dev/null
  sleep 10
  mpg123 plik2.mp3 2> /dev/null
done
Skrypt obsługujący playlisty z plików tekstowych mógłby wyglądać tak:
#!/usr/bin/env bash

# skrypt przyjmuje za argumenty nazwy plikow z listami odtwarzania

mp3=mpg123
ogg=ogg123

# program odtwarza muzyke bez konca
# po skonczeniu ostatniej playlisty wraca do poczatkowej
while true; do
 
  for playlist in $@; do
   
    if [ ! -f "$playlist" ]; then continue; fi

    echo "[-i-] opening playlist: $playlist" # >&2
   
    while IFS=";" read -r type times arg; do
      if ! [[ "$times" =~ ^[0-9]+$ ]]; then continue; fi
      if [ "$times" -eq  0 ]; then continue; fi

      # powtarza piosenke lub wstrzymanie zdefiniowana liczbe razy
      for i in $(eval echo {1..$times}); do
        # jesli wstrzymanie to czeka podana liczbe sekund
        if [ "$type" == "wait" ]; then
          if ! [[ "$arg" =~ ^[0-9]+$ ]]; then continue; fi
          echo "[$i/$times] sleep for $arg" # >&2
          sleep "$arg"
        # jesli plik to odtwarza
        elif [ "$type" == "file" ]; then
          if [ ! -f "$arg" ]; then continue; fi
         
          ext=$(echo "$arg" | sed -r -e 's/^.*\\.([^\\.]*)$/\\1/')
         
          echo "[$i/$times] playing: $arg" # >&2

          if [ "$ext" == "ogg" ]; then
            $ogg "$arg" 2> /dev/null
          elif [ "$ext" == "mp3" ]; then
            $mp3 "$arg" 2> /dev/null
          else
            # echo "  file type $ext not supported." >&2
            continue
          fi

        fi
      done

    done < "$playlist"

  done

done
http://wklej.org/hash/51154b12abe/

Za argumenty przyjmuje nazwy plików list odtwarzania.

List odtwarzania do niego mogłaby wyglądać np. tak:
file;3;files/sample1.ogg
wait;3;1
file;1;files/sample2.ogg
wait;5;2
file;0;files/sample2.mp3
wait;1;1
file;1;files/sample1.ogg
file;1;files/sample1.ogg
wait;1;1
file;1;files/file_that_does_not_exist.ogg
wait;1;1
file;1;files/sample1.txt
wait;1;1
file;1;files/sample1.ogg
wait;1;1
Separatorem jest średnik. Pierwsze pole to typ (piosenka czy odstęp czasowy), drugie pole to liczba powtórzeń a ostatnie to dodatkowy argument - dla piosenki ścieżka do pliku a dla odstępu jego długość (w sekundach).

Przykładowe wywołanie:
# ./simpleplayer.bash playlist.txt playlist2.txt 
[-i-] opening playlist: playlist.txt
[1/3] playing: files/sample1.ogg
[2/3] playing: files/sample1.ogg
[3/3] playing: files/sample1.ogg
[1/3] sleep for 1
[2/3] sleep for 1
[3/3] sleep for 1
[1/1] playing: files/sample2.ogg
[1/5] sleep for 2
[2/5] sleep for 2
[3/5] sleep for 2
[4/5] sleep for 2
[5/5] sleep for 2
[1/1] sleep for 1
[1/1] playing: files/sample1.ogg
[1/1] playing: files/sample1.ogg
[1/1] sleep for 1
^C

piotrino

  • Gość
Mp3 player w Centos 4
« Odpowiedź #13 dnia: 2013-05-20, 21:27:28 »
Cytat: alvaro
A co ja z tego będę miał? ;-)
A co byś chciał ? :)
Jestem pod wrażeniem!!!. Nie spodziewałem się że dasz mi "gotowca" W innym wypadku jakbym miał więcej czasu to może sam bym stworzył prosty skrypt. Ten pierwszy prosty skrypt odpowiada mi, tylko wykombinuję do niego żeby mi melodie od pierwszej piosenki do ostatniej szły, i cofały się od początku  i na nowo od pierwszej piosenki .
Chodzi mi o ten skrypt:
#!/usr/bin/env bash

ogg123 plik1.ogg 2> /dev/null
sleep 1
ogg123 plik2.ogg 2> /dev/null
sleep 1
mpg123 plik1.mp3 2> /dev/null
sleep 10
mpg123 plik2.mp3 2> /dev/null
Jeszcze się dowiem jak dołączać skrypt w CentOSie, ale bez twojej pomocy. :)  . Cekam na telefon kiedy to wszystko będę wdrażał, skrypty w czasie mojej pracy będę wdrażał, o ile zadzwonią...:)

P.S Z ciekawości spytam się jak długo zajęło Tobie nauka basha... Php trochę znam, może trochę basha liznę przy okazji.

alvaro

  • Gość
Mp3 player w Centos 4
« Odpowiedź #14 dnia: 2013-05-21, 18:26:52 »
Cytat: piotrino
Ten pierwszy prosty skrypt odpowiada mi, tylko wykombinuję do niego żeby mi melodie od pierwszej piosenki do ostatniej szły, i cofały się od początku i na nowo od pierwszej piosenki .
Dokładnie to robi drugi i trzeci skrypt z mojego poprzedniego posta.

Cytat: piotrino
P.S Z ciekawości spytam się jak długo zajęło Tobie nauka basha... Php trochę znam, może trochę basha liznę przy okazji.
Nie uczyłem się basha (może oprócz dwóch semestrów na studiach) i nie znam go na jakimś wybitnie wysokim poziomie. Po prostu korzystając z Linuksa jego podstowowa znajomość się przydaje a ja używam Linuksa od około 10 lat.

Wracając do tematu: żeby uruchamiać coś na starcie najlepiej dodać initscript.

Lista plików:
- /etc/init.d/simpleplayer - serwis (initscript) dla simpleplayer
- /etc/default/simpleplayer - plik konfiguracyjny serwisu
- /usr/local/bin/simpleplayer - prosty odtwarzacz muzyki z obsługą playlist
- /etc/simpleplayer/playlist.txt - playlista
- /usr/local/share/simpleplayer/ - katalog z muzyką

/usr/local/share/simpleplayer/

Katalog z plikami muzycznymi (*.mp3 i *.ogg) wykorzystywanymi w playlistach.
# ls -1 /usr/local/share/simpleplayer/
sample1.mp3
sample1.ogg
sample1.txt
sample2.mp3
sample2.ogg
sample2.txt
/etc/simpleplayer/playlist.txt

Lista odtwarzania (playlista), zawierająca pozycje z /usr/local/share/simpleplayer/.
file;1;/usr/local/share/simpleplayer/sample2.ogg
file;1;/usr/local/share/simpleplayer/sample2.ogg
wait;1;1
file;1;/usr/local/share/simpleplayer/sample1.ogg
wait;1;1
file;1;/usr/local/share/simpleplayer/sample2.ogg
wait;5;1
http://wklej.org/hash/9c308d707ea/txt/

/usr/local/bin/simpleplayer

Odtwarzacz muzyki z mojego ostatniego posta.
http://wklej.org/hash/c5eda6cd8b4/

Musi mieć prawa wykonywania:
chmod +x /usr/local/bin/simpleplayer
Odtwarza playlisty w pętli. Gdy skończy odtwarzać wszystko wraca do początku.
# /usr/local/bin/simpleplayer /etc/simpleplayer/playlist.txt 
[-i-] opening playlist: /etc/simpleplayer/playlist.txt
[1/1] playing: /usr/local/share/simpleplayer/sample2.ogg
[1/1] playing: /usr/local/share/simpleplayer/sample2.ogg
[1/1] sleep for 1
[1/1] playing: /usr/local/share/simpleplayer/sample1.ogg
[1/1] sleep for 1
[1/1] playing: /usr/local/share/simpleplayer/sample2.ogg
[1/5] sleep for 1
[2/5] sleep for 1
[3/5] sleep for 1
[4/5] sleep for 1
[5/5] sleep for 1
[-i-] opening playlist: /etc/simpleplayer/playlist.txt
[1/1] playing: /usr/local/share/simpleplayer/sample2.ogg
[1/1] playing: /usr/local/share/simpleplayer/sample2.ogg
[1/1] sleep for 1
[1/1] playing: /usr/local/share/simpleplayer/sample1.ogg
[1/1] sleep for 1
[1/1] playing: /usr/local/share/simpleplayer/sample2.ogg
[1/5] sleep for 1
[2/5] sleep for 1
[3/5] sleep for 1
[4/5] sleep for 1
[5/5] sleep for 1
^C
/etc/default/simpleplayer

Plik konfiguracyjny dla serwisu /etc/init.d/simpleplayer.
Zawiera nazwę użytkownika, który będzie uruchamiał odtwarzacz muzyki.

Plik jest następującej postaci:
user=nazwauzytkownika
Przykład:
user=simpleplayeruser
http://wklej.org/hash/59826f69407/txt/

Użytkownik ten musi należeć do groupy audio.

Aby dodać użytkownika do grupy można posłużyć się poleceniem useradd (w przypadku nowego użytownika) lub moduser (w przypadku istniejącego użytkownika).
useradd -G audio simpleplayeruser
/etc/init.d/simpleplayer

Serwis, którym można zarządzać za pomocą service.
#!/usr/bin/env bash
#
# simpleplayer music player
#
# chkconfig: 345 99 01
#
# description: simple player service
#
# processname: simpleplayer
#
# config: /etc/simpleplayer/playlist.txt
#
### BEGIN INIT INFO
# Provides: simpleplayer
# Required-Start:
# Required-Stop:
# Should-Start: $local_fs
# Should-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop simpleplayer
# Description: simpleplayer is a simple player that plays music in a loop
### END INIT INFO

# http://fedoraproject.org/wiki/Packaging:SysVInitScript#Initscript_template

# Source function library.
. /etc/rc.d/init.d/functions

exec="/usr/local/bin/simpleplayer"
prog=$(basename "$exec")
config="/etc/simpleplayer/playlist.txt"
#lockfile=/var/lock/subsys/$prog
pidfile="/var/lock/$prog.pid"
default="/etc/default/$prog"

user=root

[ -r "$default" ] && . $default

check_pidfile() {
  if [ -f $pidfile ]; then
    return 0
  else
    return 1
  fi
}

check_processname() {
  #ps -A -o pid,cmd | tail -n +1 | grep -E '[[:blank:]][0-9]+[[:blank:]]+' | sed -r -e 's/^[[:blank:]]*[0-9]+[[:blank:]]+//'
 
  processname=$(ps -o args= -p "$1")
 
  echo "$processname" | grep -E "$exec $config$" > /dev/null 2> /dev/null
  status=$?
  return $status
}

check_status() {
  if ! check_pidfile; then return 1; fi
 
  pid=$(cat "$pidfile")
 
  if check_processname "$pid"; then
    return 0
  else
    return 2
  fi
}

get_status() {
  check_status
  servicestatus=$?

  echo -n $"Service $prog "
 
  if [ $servicestatus -eq 0 ]; then
    pid=$(cat "$pidfile")
    echo "is running $pid"
  else
    if [ $servicestatus -eq 1 ]; then
      echo "is not running"
    else
      pid=$(cat "$pidfile")
      echo "is not running but lock file exist $pid"
    fi
  fi

  return $servicestatus
}

start() {
  [ -x $exec ] || exit 5
  [ -f $config ] || exit 6
  echo -n $"Starting $prog: "
 
  #daemon --user "$user" $exec $config > /dev/null 2> /dev/null & echo $!
  #retval=$?
  #echo
  #[ $retval -eq 0 ] && touch $lockfile
  #return $retval

  pid=$(su - "$user" -c "$exec $config > /dev/null 2> /dev/null & echo \\$!")
 
  retval=$?
 
  [ $retval -eq 0 ] && echo "$pid" > "$pidfile"
 
  if [ $? -eq 0 ]; then
    echo "ok"
  else
    echo "fail $pid"
  fi
}

stop() {
  echo -n $"Stopping $prog: "
 
  #killproc $prog
  #retval=$?
  #echo
  #[ $retval -eq 0 ] && rm -f $lockfile
  #return $retval
 
  check_status
  runstatus=$?
 
  if [ $runstatus -eq 0 ]; then
    pid=$(cat "$pidfile")
    kill -9 "$pid"
    rm -f "$pidfile"
    echo "ok"
    return 0
  else
    if [ $runstatus -eq 1 ]; then
      echo "process is not running"
      #return 1
      return 0
    else
      pid=$(cat "$pidfile")
      rm -f "$pidfile"
      echo "fatal error $pid"
      #return 2
      return 1
    fi
  fi
}

restart() {
  stop
  start
}

reload() {
  restart
}

force_reload() {
  restart
}

rh_status() {
  status $prog
}

rh_status_q() {
  rh_status >/dev/null 2>&1
}


case $1 in
  start)
    #rh_status_q && exit 0
    check_status && exit 0
    $1
    ;;
  stop)
    #rh_status_q || exit 0
    $1
    ;;
  restart)
    $1
    ;;
  reload)
    #rh_status_q || exit 7
    $1
    ;;
  force-reload)
    $1
    ;;
  status)
    #rh_status
    get_status
    ;;
  condrestart|try-restart)
    #rh_status_q || exit 0
    restart
    ;;
  *)
  echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
esac

exit $?
http://wklej.org/hash/61dcc472c91/

Musi mieć prawa wykonywania:
chmod +x /etc/init.d/simpleplayer
Można nim zarządzać przez service:
# service simpleplayer start
Starting simpleplayer: ok
# service simpleplayer status
Service simpleplayer is running 19155
# service simpleplayer restart
Stopping simpleplayer: ok
Starting simpleplayer: ok
# service simpleplayer stop
Stopping simpleplayer: ok
# service simpleplayer status
Service simpleplayer is not running
Aby serwis uruchamiał (i wyłączał) się w wybranych runlevelach (np. przy starcie systemu) należy go dodać przez chkconfig (dotyczy EL, w innych dystrybucjach są używane inne rozwiązania):
# chkconfig --list simpleplayer
service simpleplayer supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add simpleplayer')
# chkconfig --add /etc/init.d/simpleplayer
# chkconfig --list simpleplayer
simpleplayer   0:off 1:off 2:off 3:on 4:on 5:on 6:off
Więcej o runlevelach można poczytać na linux.com.