Linux'ta Askıya Alma ve Devam Etme Konusunda Komut Dosyalarını ve Komutları Çalıştırma

click fraud protection

Koşmanın en iyi yolu Kodlar askıya almadan önce (veya devam ettirdikten sonra) sistemd init sistemini kullanmaktır. Bunun nedeni, init sisteminin çekirdek ve güç sistemleri ile doğrudan etkileşime girmesidir. Bu araçla çalışmayı öğrenmek, herhangi bir kullanıcının Linux işletim sistemi üzerinde çok fazla kontrol sahibi olmasını sağlar,

Ne yaptığınızı bilmiyorsanız, PC'nizdeki init sistemiyle uğraşmanın tehlikeli olabileceğini lütfen unutmayın. Olası aksiliklerden kaçınmak için bu eğiticideki talimatları mümkün olduğunca yakından takip ettiğinizden emin olun.

Her modern Linux dağıtımı sistemd init sistemini desteklemez. Bazıları uptart veya tamamen başka bir şey kullanır. Bu öğreticide, en yaygın başlatma sistemi olduğu için systemd'ye odaklanacağız. Bu görevi, bu makalede ele aldığımız şeyleri çalıştırmayan bir şeyde gerçekleştirmek istiyorsanız, talimatlar için işletim sisteminizin el kitabına bakmayı düşünün.

Not: Debian kullanıcıları, usr / lib / systemd / sistem uyku ile /lib/systemd/system-sleep/

instagram viewer

Askıya Almadan Önce Komut Çalıştırma

Askıya almadan önce bir komut dosyası çalıştırmak için herhangi bir bash komut dosyasını  /usr/lib/systemd/system-sleep/ dizin. Komut dosyalarının kendileri her şeyi yapabilir, ancak bunlara uyulması gereken belirli bir sözdizimi vardır. Bir terminal penceresi açarak başlayın. Sudo -s kullanarak bir kök kabuk kazanın.

Ardından, sistem uyku dizininin içindeki nano metin düzenleyiciyi yukarı kaldırın:

nano /usr/lib/systemd/system-sleep/pre-suspend.sh

Senarı senaryo başlangıcına ekleyin. Bunu eklemek çok önemlidir ve onsuz yorumlayıcı kodu ve komutları doğru bir şekilde okuyamaz.

#! / Bin / bash /

Senaryonun bir sonraki kısmı “if”. Bu, güç kontrol sistemine sistemin “askıya alınması” için aşağı inmek üzere olduğunu, bir şeyler olması gerektiğini söyleyecektir. Aşağıdaki kodu yapıştırın:

eğer ["$ {1}" == "pre"]; sonra. sh /path/to/script/to/run.sh

Değişiklik sh /path/to/script/to/run.sh sistem askıya alınmadan hemen önce Linux PC'nizde (veya sunucunuzda) çalıştırmak istediğiniz her şey için komut dosyasında. Doğrudan “if” den sonraki satırın olması gerekmediğini unutmayın. sh /path/to/script/to/run.sh. Bunu çeşitli komutları yürütmek için de kullanabilirsiniz. Bash bunu bir komut olarak tanıyabildiği sürece çalışır.

“Askıya almadan önce” komut dosyasının son kısmı “else if” kısmını eklemektir. Komut dosyasının bu yönünün değiştirilmesine gerek yoktur, çünkü bu örnekte, bir şey yapmaktan endişe duyuyoruz önce sistem tekrar kalktığında değil, aşağı iner.

elif ["$ {1}" == "yayın"]; sonra. # hiçbir şey buraya gelmez. fi

Dosyaya her şey eklendiğinde, Ctrl + O nano kaydetmek için.

Özgeçmişten Sonra Komut Çalıştırma

Özgeçmişten sonra bir komutun yürütülmesi, askıya alınmadan önce bir şey çalıştırmaya benzer. Tek gerçek fark, komut dosyasının “if” kısmından sonra bir komut eklemek yerine, kodun en önemli kısmını “elif” satırından sonra gerçekleştirirsiniz.

Bir özgeçmiş sonrası komut dosyası oluşturmak için, ilk olarak, shebang'ı ilk satır olarak ekleyin.

#! Bin / bash

Bir sonraki satıra komut dosyasının “if” kısmını ekleyin.

eğer ["$ {1}" == "pre"]; sonra. # hiçbir şey buraya gelmez

Bu kod biraz bash betiğine yapıştırılmış haldeyken aşağı gidin ve “else if” bölümünü yapıştırın.

elif ["$ {1}" == "yayın"]; sonra. sh /path/to/script/to/run.sh. fi

Bir kez daha, “elif” satırının altına bir şey yazmak sorun değil. Normal bir komut işlemi olduğu sürece systemd ve bash onu çalıştıracaktır.

Başlangıç ​​ve Devamında Komutları Çalıştırma

İki karşıt komut çalıştırmak isterseniz; biri askıya alınmadan önce ve biri devam ettirildiğinde mümkündür. Sadece betiği özelleştirmek ve "if" satırının yanı sıra "elseif" satırının altına satır eklemek anlamına gelir.

Her zamanki gibi, tebang'ı tercüman için senaryoya göndererek başlayın.

#! / Bin / bash

Ardından, kodun if bölümünü yapıştırın.

eğer ["$ {1}" == "pre"]; sonra. # komutla değiştir

İf altında, “# replace with command” komutunu, sistem kapanmadan hemen önce çalıştırmak istediğiniz komutla değiştirin. Ardından, "elif" bölümüne gidin ve aynısını yapın.

elif ["$ {1}" == "yayın"]; sonra. # komut ile değiştirin. fi

Dosyayı Ctrl + O ile kaydedin,

İzinleri Güncelleme ve Komut Dosyasını Kullanma

Gerekli tüm komutlar kod dosyasının içindedir, ancak çalıştırmadan önce izinleri güncellemeniz gerekir. Bir terminal açın ve su veya sudo -s ile root kazanın. Sonra şunları yapın:

chmod + x /usr/lib/systemd/system-sleep/pre-suspend.sh

Şu andan itibaren, askıya aldığınızda veya devam ettiğinizde, komut dosyasının içindeki özel komutların çalışması gerekir.

Not: systemd sistem uyku hakkında sorularınız mı var? İle kılavuzu kontrol edin man systemd-suspend.service.

watch instagram story