Opret alarmsystem på Ubuntu-server uden GUI: Trin-for-trin guide

Hvordan kan et alarmsystem baseret på en Ubuntu-server uden grafisk interface, som afspiller forskellige lydfiler (.mp3 eller .wav) via kommandolinjen og PC'ens lydudgang, oprettes og eventuelt integreres med en socket listener som Ruby Sinatra?

For at oprette et alarmsystem på en Ubuntu-server uden grafisk interface, skal du installere nødvendige pakker som mpg123 og Ruby Sinatra, oprette en Ruby Sinatra applikation, og eventuelt opsætte en systemd service for automatisk opstart.

Sådan oprettes et alarmsystem baseret på en Ubuntu-server uden grafisk interface

For at oprette et alarmsystem på en Ubuntu-server uden grafisk interface, som afspiller lydfiler via kommandolinjen og PC'ens lydudgang, samt integrere det med en socket listener som Ruby Sinatra, kan du følge disse trin:

1. Installation af nødvendige pakker

  • Opdater systemet:
    sudo apt-get update
  • Installer mpg123 til afspilning af MP3-filer:
    sudo apt-get install mpg123
  • Installer aplay til afspilning af WAV-filer (forudinstalleret på de fleste Ubuntu-systemer):
    sudo apt-get install alsa-utils
  • Installer Ruby og Sinatra:
    sudo apt-get install ruby
    gem install sinatra

2. Oprettelse af Ruby Sinatra applikation

Opret en fil kaldet alarm_system.rb og tilføj følgende kode:

require 'sinatra'

set :bind, '0.0.0.0'
set :port, 4567

get '/play/:file' do
  file = params[:file]
  if file.end_with?('.mp3')
    system("mpg123 #{file}")
  elsif file.end_with?('.wav')
    system("aplay #{file}")
  else
    "Unsupported file format"
  end
end

3. Start Sinatra applikationen

Kør følgende kommando for at starte din Sinatra applikation:

ruby alarm_system.rb

4. Test af alarmsystemet

For at teste alarmsystemet, kan du bruge en webbrowser eller et værktøj som curl til at sende en GET-forespørgsel til serveren:

curl http://localhost:4567/play/path/to/your/soundfile.mp3

Erstat path/to/your/soundfile.mp3 med den faktiske sti til din lydfil.

5. Opsætning af systemd service (valgfrit)

For at sikre, at din Sinatra applikation starter automatisk ved opstart, kan du oprette en systemd service:

  • Opret en fil kaldet /etc/systemd/system/alarm_system.service og tilføj følgende indhold:
    [Unit]
    Description=Alarm System Service
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/ruby /path/to/alarm_system.rb
    Restart=always
    User=your_username
    Group=your_groupname
    
    [Install]
    WantedBy=multi-user.target
    
  • Aktiver og start servicen:
    sudo systemctl enable alarm_system.service
    sudo systemctl start alarm_system.service

Dette setup vil sikre, at din Ubuntu-server kan afspille lydfiler via kommandolinjen og integreres med en Ruby Sinatra socket listener.