Systemd Hizmet Yönetimi

Cevapla
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 884
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 234 kez
Teşekkür edildi: 730 kez
İletişim:

Systemd Hizmet Yönetimi

Mesaj gönderen TRWE_2012 »

Merhabalar

Bugün sizlerle, GNU/Linux sistemlerinde systemd hizmetlerini yönetmek için kullanabileceğiniz  bir bash betiği paylaşmak istiyorum. Bu betik, çeşitli hizmetleri listelemek, başlatmak, durdurmak ve daha fazlasını yapmanıza olanak tanıyor.

Betiğin Özellikleri:

Hizmet Listesi:
Tüm systemd hizmetlerini listeleyebilir ve çıktıyı bir dosyaya kaydedebilirsiniz.
Hizmet Yönetimi:Belirli bir hizmeti başlatma, durdurma, yeniden başlatma, etkinleştirme veya devre dışı bırakma gibi işlemleri kolayca yapabilirsiniz.
Maskeleme:Hizmetleri maskeleyebilir veya maskelemeden çıkartabilirsiniz.
RAM Kullanımı:Bir hizmetin kullandığı RAM miktarını öğrenebilirsiniz.
Durum Kontrolü:Hizmetlerin durumunu görüntüleyebilirsiniz.
Not-Found Hizmetleri:Geçersiz veya bulunamayan hizmetleri listeleyebilirsiniz.

Kullanım:

Betiği çalıştırdığınızda, ilk olarak tüm hizmetlerin listesini göreceksiniz. Ardından, aşağıdaki seçeneklerden birini seçerek istediğiniz işlemi gerçekleştirebilirsiniz:
  • 0: Hizmet listesini bir dosyaya kaydet
  • 1: Hizmeti çalıştır
  • 2: Hizmeti yeniden başlat
  • 3: Hizmeti durdur
  • 4: Hizmeti devre dışı bırak
  • 5: Hizmeti etkinleştir
  • 6: Hizmeti maskele
  • 7: Hizmeti maskelemeden çıkart
  • 8: Hizmetin RAM kullanımını öğren
  • 9: Hizmetin durumunu görüntüle
  • 10: Not-Found hizmetleri listele
  • 11: Çıkış
Örnek Kullanım:

Diyelim ki apache2 hizmetini başlatmak istiyorsunuz. Betiği çalıştırdıktan sonra 1 seçeneğini seçip apache2 yazmanız yeterli. Betik, hizmeti başlatacak ve size bir onay mesajı verecektir.
 
Betik Adı : systemd_komuta_kontrol.sh

KOD İÇERİĞİ :

Kod: Tümünü seç

#!/bin/bash

# Kullanıcıdan sudo yetkisi almak için
sudo -v # Kullanıcıdan şifre alınması...

# Tüm systemd hizmetlerini listele
list_services() {
echo "Tüm Hizmetler Listesi:"
systemctl list-units --type=service --all --no-pager
}

# Not-found hizmetlerini listele
list_not_found_services() {
echo "Not-Found Hizmetler Listesi:"
systemctl list-units --type=service --all --no-pager | grep "not-found"
}

# Kullanıcıya ne yapmak istediğini soran fonksiyon
user_menu() {
echo "Ne yapmak istiyorsunuz?"
echo "0. Listelenmiş hizmetlerin çıktısını al (hizmetler.txt)"
echo "1. Bir hizmeti çalıştır"
echo "2. Bir hizmeti yeniden başlat"
echo "3. Bir hizmeti durdur"
echo "4. Bir hizmeti devre dışı bırak"
echo "5. Bir hizmeti etkinleştir"
echo "6. Bir hizmeti maskele"
echo "7. Bir hizmeti maskelemeden çıkart"
echo "8. Bir hizmetin kullandığı RAM miktarını öğren"
echo "9. Bir hizmetin durumunu görüntüle"
echo "10. Not-Found hizmetleri listele"
echo "11. Çıkış"
read -p "Seçiminizi yapın (0-11): " choice

case $choice in
0) save_service_list ;;
1) run_service ;;
2) restart_service ;;
3) stop_service ;;
4) disable_service ;;
5) enable_service ;;
6) mask_service ;;
7) unmask_service ;;
8) check_ram_usage ;;
9) check_service_status ;;
10) list_not_found_services ;;
11) exit 0 ;;
*) echo "Geçersiz seçim, lütfen tekrar deneyin." ;;
esac
}

# Hizmet listesini bir dosyaya kaydet
save_service_list() {
systemctl list-units --type=service --all --no-pager > ~/hizmetler.txt
echo "Hizmetler başarıyla ~/hizmetler.txt dosyasına kaydedildi."
user_menu
}

# Hizmeti çalıştır
run_service() {
read -p "Çalıştırmak istediğiniz hizmetin adını girin: " service
sudo systemctl start $service
echo "$service hizmeti çalıştırıldı."
user_menu
}

# Hizmeti yeniden başlat
restart_service() {
read -p "Yeniden başlatmak istediğiniz hizmetin adını girin: " service
sudo systemctl restart $service
echo "$service hizmeti yeniden başlatıldı."
user_menu
}

# Hizmeti durdur
stop_service() {
read -p "Durdurmak istediğiniz hizmetin adını girin: " service
sudo systemctl stop $service
echo "$service hizmeti durduruldu."
user_menu
}

# Hizmeti devre dışı bırak
disable_service() {
read -p "Devre dışı bırakmak istediğiniz hizmetin adını girin: " service
sudo systemctl disable $service
echo "$service hizmeti devre dışı bırakıldı."
user_menu
}

# Hizmeti etkinleştir
enable_service() {
read -p "Etkinleştirmek istediğiniz hizmetin adını girin: " service
sudo systemctl enable $service
echo "$service hizmeti etkinleştirildi."
user_menu
}

# Hizmeti maskele
mask_service() {
read -p "Maskelemek istediğiniz hizmetin adını girin: " service
sudo systemctl mask $service
echo "$service hizmeti maskeleme işlemi yapıldı."
user_menu
}

# Hizmeti maskelemeden çıkart
unmask_service() {
read -p "Maskelemeden çıkartmak istediğiniz hizmetin adını girin: " service
sudo systemctl unmask $service
echo "$service hizmeti maskelemeden çıkartıldı."
user_menu
}

# Hizmetin kullandığı RAM miktarını öğren
check_ram_usage() {
read -p "RAM kullanımını öğrenmek istediğiniz hizmetin adını girin: " service
pid=$(systemctl show -p MainPID $service | sed 's/MainPID=//')
if [ -z "$pid" ]; then
echo "Hizmet çalışmıyor veya geçersiz bir hizmet adı girdiniz."
else
ram_usage=$(ps -o rss= -p $pid)
echo "$service hizmetinin kullandığı RAM: $ram_usage KB"
fi
user_menu
}

# Hizmetin durumunu görüntüle
check_service_status() {
read -p "Durumunu görmek istediğiniz hizmetin adını girin: " service
systemctl status $service --no-pager
user_menu
}

# Betiği başlat
list_services
user_menu
Sonuç olarak özetle ;

Bu betik,systemd hizmetlerini yönetmek için oldukça kullanışlı bir araç. Özellikle sistem yöneticileri , GNU/Linux meraklıları ve kullanıcıları için pratik bir çözüm sunmakta ve de zamandan tasarruf sağlamakta...


 EK BİLGİ/HATIRLATMA NOTLARI :

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

Türkçe Çevirisi :

YÜKLÜ   = Birim tanımının düzgün bir şekilde yüklenip yüklenmediğini yansıtır.
AKTİF = Yüksek seviyeli birim aktivasyon durumu, yani ALT DURUM'un genelleştirilmesi.
ALT DURUM    = Düşük seviyeli birim aktivasyon durumu, değerler birim türüne bağlıdır.
 
Bu terimler, systemd'nin birimlerinin (unit) durumunu ve yüklenme durumunu anlamak için kullanılır. Her biri, birimin genel durumu hakkında bilgi verir:

1.LOAD   = Reflects whether the unit definition was properly loaded.

Bu ifade, birimin tanımının düzgün bir şekilde yüklenip yüklenmediğini gösterir. Eğer birim dosyası (örneğin, bir hizmet dosyası) doğru bir şekilde okunmuş ve sistemde tanımlanmışsa, "loaded" (yüklenmiş) olarak gösterilir. Eğer birim dosyası bulunamazsa veya hatalıysa, "not-found" veya "error" gibi değerler alabilir. Bu, birimin sistemde kullanılabilir olup olmadığını anlamak içindir.

2.ACTIVE = The high-level unit activation state, i.e. generalization of SUB.

Bu ifade, birimin yüksek seviyedeki aktivasyon durumunu belirtir. Yani, birimin genel olarak aktif olup olmadığını gösterir. Örneğin, bir hizmet birimi "active" (aktif) durumundaysa, bu, hizmetin çalıştığını ve sistem tarafından yönetildiğini gösterir. "inactive" (pasif) veya "failed" (başarısız) gibi durumlar da olabilir. Bu, birimin genel işlevselliği hakkında bilgi verir.

3.SUB    = The low-level unit activation state, values depend on unit type.

Bu ifade, birimin düşük seviyedeki aktivasyon durumunu belirtir. Bu durum, birimin türüne bağlı olarak değişir. Örneğin, bir hizmet birimi için "running" (çalışıyor), "stopped" (durdurulmuş) veya "failed" (başarısız) gibi değerler alabilir. Bu, birimin daha ayrıntılı bir durumunu anlamak için kullanılır.

Özetle, bu üç alan, systemd birimlerinin durumunu ve yüklenme durumunu anlamak için kritik öneme sahiptir. LOAD, birimin tanımının yüklenip yüklenmediğini; ACTIVE, birimin genel aktivasyon durumunu; ve SUB, birimin daha spesifik durumunu gösterir.
 
ÖRNEK KOMUT ÇIKTISI : (Sistem : GNU/Linux Mint 21.1 x64 LXDE)

Kod: Tümünü seç

~$ cd ~/Masaüstü
~$ ls -g
toplam 8
-rwxrwxrwx 1 linuxmint 4059 Şub 22 00:11 systemd_komuta_kontrol.sh
-rw-rw-r-- 1 linuxmint 1292 Şub 22 00:32 systemd_komuta_kontrol.sh.7z

~$ ./systemd_komuta_kontrol.sh
[sudo] linumint için parola: ****************************

Tüm Hizmetler Listesi:
UNiT LOAD ACTiVE SUB DESCRiPTiON
accounts-daemon.service loaded active running Accounts Service
acpid.service loaded active running ACPI event daemon
alsa-restore.service loaded active exited Save/Restore Sound Card State
alsa-state.service loaded inactive dead Manage Sound Card State (restore and store)
anacron.service loaded inactive dead Run anacron jobs
apache2.service loaded active running The Apache HTTP Server
apparmor.service loaded active exited Load AppArmor profiles
apt-daily-upgrade.service loaded inactive dead Daily apt upgrade and clean activities
apt-daily.service loaded inactive dead Daily apt download activities
● auditd.service not-found inactive dead auditd.service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
binfmt-support.service loaded active exited Enable support for additional executable binary for…
blk-availability.service loaded active exited Availability of block devices
blueman-mechanism.service loaded inactive dead Bluetooth management mechanism
bluetooth.service loaded active running Bluetooth service
● connman.service not-found inactive dead connman.service
● console-screen.service not-found inactive dead console-screen.service
console-setup.service loaded active exited Set console font and keymap
cron.service loaded active running Regular background program processing daemon
cups-browsed.service loaded active running Make remote CUPS printers available locally
cups.service loaded active running CUPS Scheduler
dbus.service loaded active running D-Bus System Message Bus
dm-event.service loaded inactive dead Device-mapper event daemon
dmesg.service loaded inactive dead Save initial kernel messages after boot
dns-clean.service loaded inactive dead Clean up any mess left by 0dns-up
dpkg-db-backup.service loaded inactive dead Daily dpkg database backup service
● dracut-mount.service not-found inactive dead dracut-mount.service
e2scrub_all.service loaded inactive dead Online ext4 Metadata Check for All Filesystems
e2scrub_reap.service loaded inactive dead Remove Stale Online ext4 Metadata Check Snapshots
emergency.service loaded inactive dead Emergency Shell
● fcoe.service not-found inactive dead fcoe.service
finalrd.service loaded active exited Create final runtime dir for shutdown pivot root
fstrim.service loaded inactive dead Discard unused blocks on filesystems from /etc/fstab
fwupd-refresh.service loaded inactive dead Refresh fwupd metadata and update motd
getty-static.service loaded inactive dead getty on tty2-tty6 if dbus and logind are not avail…
getty@tty1.service loaded active running Getty on tty1
getty@tty7.service loaded inactive dead Getty on tty7
gpu-manager.service loaded inactive dead Detect the available GPUs and deal with any system …
grub-common.service loaded inactive dead Record successful boot for GRUB
grub-initrd-fallback.service loaded inactive dead GRUB failed boot detection
ifupdown-pre.service loaded active exited Helper to synchronize boot up for ifupdown
irqbalance.service loaded active running irqbalance daemon
● iscsi-shutdown.service not-found inactive dead iscsi-shutdown.service
● iscsi.service not-found inactive dead iscsi.service
● iscsid.service not-found inactive dead iscsid.service
● kbd.service not-found inactive dead kbd.service
kerneloops.service loaded active running Tool to automatically collect and submit kernel cra…
keyboard-setup.service loaded active exited Set the console keyboard layout
kmod-static-nodes.service loaded active exited Create List of Static Device Nodes
● libvirtd.service not-found inactive dead libvirtd.service
lm-sensors.service loaded active exited Initialize hardware monitoring sensors
log_boot_time.service loaded inactive dead Log Boot Time
logrotate.service loaded inactive dead Rotate log files
● lvm2-activation.service not-found inactive dead lvm2-activation.service
lvm2-lvmpolld.service loaded inactive dead LVM2 poll daemon
lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. using dm…
lxdm.service loaded active running LXDE Display Manager
man-db.service loaded inactive dead Daily man-db regeneration
minetest-server.service loaded active running Minetest multiplayer server minetest.conf server co…
mintsystem.service loaded inactive dead mintsystem.service
ModemManager.service loaded active running Modem Manager
modprobe@configfs.service loaded inactive dead Load Kernel Module configfs
modprobe@drm.service loaded inactive dead Load Kernel Module drm
modprobe@efi_pstore.service loaded inactive dead Load Kernel Module efi_pstore
modprobe@fuse.service loaded inactive dead Load Kernel Module fuse
motd-news.service loaded inactive dead Message of the Day
mysql.service loaded active running MySQL Community Server
netplan-ovs-cleanup.service loaded inactive dead OpenVSwitch configuration for cleanup
● network-manager.service not-found inactive dead network-manager.service
networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd
networking.service loaded active exited Raise network interfaces
NetworkManager-wait-online.service loaded active exited Network Manager Wait Online
NetworkManager.service loaded active running Network Manager
● nfs-kernel-server.service not-found inactive dead nfs-kernel-server.service
● nfs-server.service not-found inactive dead nfs-server.service
● nmbd.service loaded failed failed Samba NMB Daemon
● nslcd.service not-found inactive dead nslcd.service
nvidia-persistenced.service loaded active running NVIDIA Persistence Daemon
● oem-config.service not-found inactive dead oem-config.service
openvpn.service loaded active exited OpenVPN service
● ovsdb-server.service not-found inactive dead ovsdb-server.service
packagekit.service loaded active running PackageKit Daemon
phpsessionclean.service loaded inactive dead Clean php session files
plocate-updatedb.service loaded inactive dead Update the plocate database
plymouth-quit-wait.service loaded active exited Hold until boot process finishes up
plymouth-quit.service loaded inactive dead Terminate Plymouth Boot Screen
plymouth-read-write.service loaded active exited Tell Plymouth To Write Out Runtime Data
plymouth-start.service loaded active exited Show Plymouth Boot Screen
polkit.service loaded active running Authorization Manager
qemu-kvm.service loaded active exited QEMU KVM preparation - module, ksm, hugepages
● rbdmap.service not-found inactive dead rbdmap.service
rc-local.service loaded inactive dead /etc/rc.local Compatibility
rescue.service loaded inactive dead Rescue Shell
● resolvconf.service not-found inactive dead resolvconf.service
● rpc-statd-notify.service not-found inactive dead rpc-statd-notify.service
rsyslog.service loaded active running System Logging Service
rtkit-daemon.service loaded active running RealtimeKit Scheduling Policy Service
secureboot-db.service loaded inactive dead Secure Boot updates for DB and DBX
setvtrgb.service loaded active exited Set console scheme
smartmontools.service loaded active running Self Monitoring and Reporting Technology (SMART) Da…
● smb.service not-found inactive dead smb.service
smbd.service loaded active running Samba SMB Daemon
systemd-ask-password-console.service loaded inactive dead Dispatch Password Requests to Console
systemd-ask-password-plymouth.service loaded inactive dead Forward Password Requests to Plymouth
systemd-ask-password-wall.service loaded inactive dead Forward Password Requests to Wall
systemd-backlight@backlight:intel_backlight.service loaded active exited Load/Save Screen Backlight Brightness of backlight:…
systemd-backlight@backlight:nvidia_0.service loaded inactive dead Load/Save Screen Backlight Brightness of backlight:…
systemd-binfmt.service loaded active exited Set Up Additional Binary Formats
systemd-boot-system-token.service loaded inactive dead Store a System Token in an EFI Variable
systemd-fsck-root.service loaded inactive dead File System Check on Root Device
systemd-fsck@dev-disk-by\x2duuid-8476\x2dE3A3.servi… loaded active exited File System Check on /dev/disk/by-uuid/8476-E3A3
systemd-fsckd.service loaded inactive dead File System Check Daemon to report status
● systemd-hwdb-update.service not-found inactive dead systemd-hwdb-update.service
systemd-initctl.service loaded inactive dead initctl Compatibility Daemon
systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running User Login Management
systemd-machine-id-commit.service loaded inactive dead Commit a transient machine-id on disk
systemd-modules-load.service loaded active exited Load Kernel Modules
systemd-networkd.service loaded inactive dead Network Configuration
systemd-pstore.service loaded inactive dead Platform Persistent Storage Archival
systemd-quotacheck.service loaded inactive dead File System Quota Check
systemd-random-seed.service loaded active exited Load/Save Random Seed
systemd-remount-fs.service loaded active exited Remount Root and Kernel File Systems
systemd-resolved.service loaded active running Network Name Resolution
systemd-rfkill.service loaded inactive dead Load/Save RF Kill Switch Status
● systemd-sysctl.service loaded failed failed Apply Kernel Variables
systemd-sysusers.service loaded active exited Create System Users
systemd-timesyncd.service loaded active running Network Time Synchronization
systemd-tmpfiles-clean.service loaded inactive dead Cleanup of Temporary Directories
systemd-tmpfiles-setup-dev.service loaded active exited Create Static Device Nodes in /dev
systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and Directories
systemd-udev-settle.service loaded active exited Wait for udev To Complete Device Initialization
systemd-udev-trigger.service loaded active exited Coldplug All udev Devices
systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files
● systemd-update-done.service not-found inactive dead systemd-update-done.service
systemd-update-utmp-runlevel.service loaded inactive dead Record Runlevel Change in UTMP
systemd-update-utmp.service loaded active exited Record System Boot/Shutdown in UTMP
systemd-user-sessions.service loaded active exited Permit User Sessions
● systemd-vconsole-setup.service not-found inactive dead systemd-vconsole-setup.service
thermald.service loaded active running Thermal Daemon Service
● ua-auto-attach.service not-found inactive dead ua-auto-attach.service
ua-reboot-cmds.service loaded inactive dead Ubuntu Pro reboot cmds
ua-timer.service loaded inactive dead Ubuntu Pro Timer for running repeated jobs
● ubuntu-advantage-cloud-id-shim.service not-found inactive dead ubuntu-advantage-cloud-id-shim.service
ubuntu-advantage.service loaded inactive dead Ubuntu Pro Background Auto Attach
ubuntu-system-adjustments.service loaded active exited Ubuntu system adjustments
udisks2.service loaded active running Disk Manager
ufw.service loaded active exited Uncomplicated firewall
update-notifier-download.service loaded inactive dead Download data for packages that failed at package i…
update-notifier-motd.service loaded inactive dead Check to see whether there is a new version of Ubun…
upower.service loaded active running Daemon for power management
user-runtime-dir@1000.service loaded active exited User Runtime Directory /run/user/1000
user@1000.service loaded active running User Manager for UID 1000
uuidd.service loaded inactive dead Daemon for generating UUIDs
whoopsie.service loaded inactive dead crash report submission
● winbind.service not-found inactive dead winbind.service
wpa_supplicant.service loaded active running WPA supplicant
zfs-import-cache.service loaded inactive dead Import ZFS pools by cache file
zfs-load-module.service loaded active exited Install ZFS kernel module
zfs-mount.service loaded active exited Mount ZFS filesystems
zfs-share.service loaded active exited ZFS file system shares
zfs-volume-wait.service loaded active exited Wait for ZFS Volume (zvol) links in /dev
zfs-zed.service loaded inactive dead ZFS Event Daemon (zed)

LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
164 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.
Ne yapmak istiyorsunuz?
0. Listelenmiş hizmetlerin çıktısını al (hizmetler.txt)
1. Bir hizmeti çalıştır
2. Bir hizmeti yeniden başlat
3. Bir hizmeti durdur
4. Bir hizmeti devre dışı bırak
5. Bir hizmeti etkinleştir
6. Bir hizmeti maskele
7. Bir hizmeti maskelemeden çıkart
8. Bir hizmetin kullandığı RAM miktarını öğren
9. Bir hizmetin durumunu görüntüle
10. Not-Found hizmetleri listele
11. Çıkış
Seçiminizi yapın (0-11): 10
Not-Found Hizmetler Listesi:
● auditd.service not-found inactive dead auditd.service
● connman.service not-found inactive dead connman.service
● console-screen.service not-found inactive dead console-screen.service
● dracut-mount.service not-found inactive dead dracut-mount.service
● fcoe.service not-found inactive dead fcoe.service
● iscsi-shutdown.service not-found inactive dead iscsi-shutdown.service
● iscsi.service not-found inactive dead iscsi.service
● iscsid.service not-found inactive dead iscsid.service
● kbd.service not-found inactive dead kbd.service
● libvirtd.service not-found inactive dead libvirtd.service
● lvm2-activation.service not-found inactive dead lvm2-activation.service
● network-manager.service not-found inactive dead network-manager.service
● nfs-kernel-server.service not-found inactive dead nfs-kernel-server.service
● nfs-server.service not-found inactive dead nfs-server.service
● nslcd.service not-found inactive dead nslcd.service
● oem-config.service not-found inactive dead oem-config.service
● ovsdb-server.service not-found inactive dead ovsdb-server.service
● rbdmap.service not-found inactive dead rbdmap.service
● resolvconf.service not-found inactive dead resolvconf.service
● rpc-statd-notify.service not-found inactive dead rpc-statd-notify.service
● smb.service not-found inactive dead smb.service
● systemd-hwdb-update.service not-found inactive dead systemd-hwdb-update.service
● systemd-update-done.service not-found inactive dead systemd-update-done.service
● systemd-vconsole-setup.service not-found inactive dead systemd-vconsole-setup.service
● ua-auto-attach.service not-found inactive dead ua-auto-attach.service
● ubuntu-advantage-cloud-id-shim.service not-found inactive dead ubuntu-advantage-cloud-id-shim.service
● winbind.service not-found inactive dead winbind.service
~$ 
 
Dosya ekleri
systemd_komuta_kontrol.sh.7z
TRWE_2012 tarafından kodlandı.
ŞUBAT 2025
(1.26 KiB) 35 kere indirildi
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim

Etiketler:
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 884
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 234 kez
Teşekkür edildi: 730 kez
İletişim:

Re: Systemd Hizmet Yönetimi

Mesaj gönderen TRWE_2012 »

Betik Güncellendi...

Değişim Günlüğü : (Tarih : 22/02/2025 - 02:10:00)

1.Sonsuz Döngü (Ana Menü):

user_menu fonksiyonunda sonsuz bir while true; do ... done döngüsü ekledim. Bu şekilde kullanıcı çıkış yapana kadar menü sürekli olarak gösterilecek.

2.Ekranı Temizle Seçeneği:

"Ekranı temizle" seçeneği olarak reset komutunu ekledim. Bu, kullanıcı menüyü her seçtiğinde ekranı temizleyebilecek...

Güncellenmiş Betik :

Kod: Tümünü seç


#!/bin/bash

# Kullanıcıdan sudo yetkisi almak için
sudo -v # Kullanıcıdan şifre alınması...

# Tüm systemd hizmetlerini listele
list_services() {
    echo "Tüm Hizmetler Listesi:"
    systemctl list-units --type=service --all --no-pager
}

# Not-found hizmetlerini listele
list_not_found_services() {
    echo "Not-Found Hizmetler Listesi:"
    systemctl list-units --type=service --all --no-pager | grep "not-found"
}

# Kullanıcıya ne yapmak istediğini soran fonksiyon
user_menu() {
    while true; do
        echo "Ne yapmak istiyorsunuz?"
        echo "0. Listelenmiş hizmetlerin çıktısını al (hizmetler.txt)"
        echo "1. Bir hizmeti çalıştır"
        echo "2. Bir hizmeti yeniden başlat"
        echo "3. Bir hizmeti durdur"
        echo "4. Bir hizmeti devre dışı bırak"
        echo "5. Bir hizmeti etkinleştir"
        echo "6. Bir hizmeti maskele"
        echo "7. Bir hizmeti maskelemeden çıkart"
        echo "8. Bir hizmetin kullandığı RAM miktarını öğren"
        echo "9. Bir hizmetin durumunu görüntüle"
        echo "10. Not-Found hizmetleri listele"
        echo "11. Ekranı temizle"
        echo "12. Çıkış"
        read -p "Seçiminizi yapın (0-12): " choice

        case $choice in
            0) save_service_list ;;
            1) run_service ;;
            2) restart_service ;;
            3) stop_service ;;
            4) disable_service ;;
            5) enable_service ;;
            6) mask_service ;;
            7) unmask_service ;;
            8) check_ram_usage ;;
            9) check_service_status ;;
            10) list_not_found_services ;;
            11) reset ;; # Ekranı temizlemek için
            12) exit 0 ;;
            *) echo "Geçersiz seçim, lütfen tekrar deneyin." ;;
        esac
    done
}

# Hizmet listesini bir dosyaya kaydet
save_service_list() {
    systemctl list-units --type=service --all --no-pager > ~/hizmetler.txt
    echo "Hizmetler başarıyla ~/hizmetler.txt dosyasına kaydedildi."
}

# Hizmeti çalıştır
run_service() {
    read -p "Çalıştırmak istediğiniz hizmetin adını girin: " service
    sudo systemctl start $service
    echo "$service hizmeti çalıştırıldı."
}

# Hizmeti yeniden başlat
restart_service() {
    read -p "Yeniden başlatmak istediğiniz hizmetin adını girin: " service
    sudo systemctl restart $service
    echo "$service hizmeti yeniden başlatıldı."
}

# Hizmeti durdur
stop_service() {
    read -p "Durdurmak istediğiniz hizmetin adını girin: " service
    sudo systemctl stop $service
    echo "$service hizmeti durduruldu."
}

# Hizmeti devre dışı bırak
disable_service() {
    read -p "Devre dışı bırakmak istediğiniz hizmetin adını girin: " service
    sudo systemctl disable $service
    echo "$service hizmeti devre dışı bırakıldı."
}

# Hizmeti etkinleştir
enable_service() {
    read -p "Etkinleştirmek istediğiniz hizmetin adını girin: " service
    sudo systemctl enable $service
    echo "$service hizmeti etkinleştirildi."
}

# Hizmeti maskele
mask_service() {
    read -p "Maskelemek istediğiniz hizmetin adını girin: " service
    sudo systemctl mask $service
    echo "$service hizmeti maskeleme işlemi yapıldı."
}

# Hizmeti maskelemeden çıkart
unmask_service() {
    read -p "Maskelemeden çıkartmak istediğiniz hizmetin adını girin: " service
    sudo systemctl unmask $service
    echo "$service hizmeti maskelemeden çıkartıldı."
}

# Hizmetin kullandığı RAM miktarını öğren
check_ram_usage() {
    read -p "RAM kullanımını öğrenmek istediğiniz hizmetin adını girin: " service
    pid=$(systemctl show -p MainPID $service | sed 's/MainPID=//')
    if [ -z "$pid" ]; then
        echo "Hizmet çalışmıyor veya geçersiz bir hizmet adı girdiniz."
    else
        ram_usage=$(ps -o rss= -p $pid)
        echo "$service hizmetinin kullandığı RAM: $ram_usage KB"
    fi
}

# Hizmetin durumunu görüntüle
check_service_status() {
    read -p "Durumunu görmek istediğiniz hizmetin adını girin: " service
    systemctl status $service --no-pager
}

# Betiği başlat
list_services
user_menu
Dosya ekleri
systemd_komuta_kontrol_v2.sh.7z
TRWE_2012 tarafından kodlandı.(eksikler eklendi.)
ŞUBAT 2025
(1.3 KiB) 34 kere indirildi
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim
Cevapla

“Bash Shell Betiklerimiz” sayfasına dön