Skip to content

Latest commit

 

History

History
136 lines (103 loc) · 5.97 KB

Gün08-28-07-18.md

File metadata and controls

136 lines (103 loc) · 5.97 KB

Bir Linux Sistemi Nasıl Başlar?

???eksik??? (Bu kısım oldukça eksik, gerekli google'lamalar ile tamamlanacaktır.)

  • AİB'ne güç geldiği anda BIOS programını belli bir adresten başlatılır.

x86 mimarisi için BIOS geçerlidir.

  • BIOS sistem donanımlarını kontrol ediyor, POST Check.
  • Başlangıç diskini arar.
  • Açılış için disk aygıtı seçiliyse sabit diskin ilk sektörü MBR (Master Boot Record)
  • BIOS disk bölümünden sistem yükleyicisini çalıştırır.
  • Sistem yükleyicisi "/boot"
  • ?eksik?

Geleceğe Görevler

Tek Seferlik Planlanmış Görevler

$ at ve $ batch

"atd" (at-daemon ile) tek seferlik işleri zamanlamak için kullanılır.

$ at 0545pm Jul 28
cp /merhaba/
cp -f * /backup
CTRL + D
  • $ atq ile kuyrukta bekleyen işler listelenir.
  • $ atrm ile kuyruktaki işler silinebilir.

Periyodik Görev Ataması

Arka tarafta "crond" (cron-daemon) çalışır ve bu periyodik işlerin kontrolleri bu servis ile yapılır. Görevlerin işlenebilmesi için daemon'un çalışması gerekir.

  • $ crontab -e komutuyla cron dosyası düzenlenebilir.

0,30 * * * * -> her saatin 0 ve 30. dakikalarında çalışır ?eksik? (Örnekler eksik)

anacron hizmeti

"crond" hizmeti ile aynı işi yapar. anacron ise crond gibi öldüğünde süresi geçmiş işi yapmamazlık etmez, süresi geçmiş işleri gerçekleştirir.

systemd Servis Kontrol Sistemi

systemd sadece bir servis kontrol sistemi değil, adeta bir ahtapot

Utilities Daemons Targets systemd Core systemd Libraries Linux Kernel

systemd araçları

Araç Açıklama
$ systemctl Servisleri kontrol eder
$ journalctl logları kontrol eder
$ notify servislerin açılış kapanış süreçlerinde hata oluşumunda bildirim gönderebilir
$ analyze linux açılışında hangi daemon'un hangi sürelerde açıldığını ve genel olarak linux'un ne kadar sürede açıldığını gösterir.
$ cgls kontrol gurubunun durumunu ayarlayan bir şey
$ cgtop kontrol guruplarının sistem kaynaklarının kullanımı ile ilgili bilgileri sunar
$ loginctl sisteme yapılan giriş ve çıkışları yönetimi ile ilgili araç
$ nspawn hata ayıklama için kullanılan bir araç

Servislerin listelenmesi

$ systemctl list-unit-files
$ systemctl list-unit-files --type service
$ systemctl list-unit-files --type service -all

systemd yapılandırma dosyaları ...

... buralarda bulunurlar

  • "/usr/lib/systemd/system/" -> Paket yöneticisi üzerinden kurulan uygulamalara ait unit file dosyaları dizini altında tutulur.
  • "/run/systemd/system/" -> Run time'da oluşturulan unit file dosyaları
  • "/etc/systemd/system/" -> Sistem yöneticisinin eklediği unit file dosyaları

... şu tip dosyalara sahiptir

  • .service dosyaları servislere ait unit dosyalarıdır.
  • .target dosyaları ise birden fazla servis
  • .mount sisteme bağlanması için istenen disk bölümleri için verilen direktifler
  • .swap sisteme bağlanması için istenen swap için verilen direktifler

run-level'e karşılık gelen systemctl komutları

  • $systemctl get-default ön tanımlı target'ı görüntüler
  • $systemctl list-units --type target ön tanımlı target'ı görüntüler
  • $systemctl set-default targetadı.target ön tanımlı target'ı değiştirir.
  • $systemctl isolate targetadı.target an itibariyle target'ı değiştirmek için kullanılır.

Unit File

Bir Unit File üç kısımdan oluşur. Bunlar: Unit, Service ve Install.

Unit

  • Description -> Unit file ile alakalı açıklamalar burada yer alır.
  • After -> başka targetlara ihtiyaç duyuyorsa burada belirtilir Örneğin: ağ ihtiyacı

Service

  • Type
    • oneshot -> işlemin bitmesini bekler
    • forking -> pidfile gereklidir ?eksik?
  • EnvironmentFile -> yapılandırma dosyası
  • ExecStartPre -> "çalıştırma satırı" çalıştırılmadan önce çalıştırılan satır
  • ExecStart -> çalıştırma satırı
  • ExecReload -> nasıl reload edileceği satırı
  • KillMode -> nasıl öldürülecek

Install

  • WantedBy -> ihtiyaç modları, örneğin: multi-user.target

systemd.timer cron benzeri systemd servisi

Unit file'lara çok benzerdirler. start ve enable bunlar için de geçerlidir.

$ systemd-analyze

$ systemd-analyze time

Sistemin açılış süresi ile ilgili bilgileri gösterir.

$ systemd-analyze blame

Açılışta hangi servisin ne kadar zamanda açılacağını gösterir.

$ systemd-analyze critical-chain

Servislerin açılışlarını ağaç (tree) yapısında görüntüler.

$ systemd-analyze plot

Sistem açılış bilgisini grafik olarak gösterir. Svg çıktı üretmektedir.

$ systemd-cgls

kontrol guruplarının durumlarını ve hangi kontrol gurubuna alt guruplarında hangi süreçlerin çalıştığını kontrol etmemizi sağlayan bir araçtır.

$ systemd-cgtop

Çalışan servislerin RAM, CPU kullanımı bilgileri için bir monitör aracıdır.

$ systemd-loginctl

$ loginctl ile kullanıcı yönetimi yapılabilir. Kullanıcı listeleri alınabilir, kullanıcılar sistemden çıkarılabilir, bağlantıları koparılabilir ve bunun gibi pek çok aksiyonu gerçekleştirilebilir.