Şimdi Ara

Arch Linux & Systemd hakkında geniş bilgi arıyorum

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
5
Cevap
0
Favori
1.098
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Başlığı tam tutturamadım sanırım :) Arch Linux de /etc/systemd/system/ altına kendi servisimizi ekleyerek açılışta tüm sistem çalıştıktan sonra en son bu eklediğim servisin
    /usr/sbin/ diziin altındaki dnsexit.com a ait ipUpdate.pl scriptini çalıştırmasını istiyorum.
    ilk olarak tuch komutu ile mi örn: dnsexit.service oluşturacaz, bu kısımı hiç biyerde göremedim sadece oluştur demişler neyle oluşturacam emin değilim. ve bu oluşturduğum .service
    içeriğine ne yazacağım. yapmak istediğim no-ip.com benzeri olan dnsexit.com aracılığı ile evdeki dinamik ip'me domain bağlamak. ve sadece bu service dosyası yetiyor mu yoksa onu yaptıktan sonra başka bişe gerekiyor mu? mesela boot sırası falan, yabancı forumları çok karıştırdım, kafam da o biçim karıştı, deneme yanılmalardan sonuç alamadım.



  • İyi bilmiyorum ama benim de bir ara shell script başlatmam gerekmişti birkaç şey öğrenmiştim.

    Systemd'de sıralama diye birşey yok. Gerekli bağımlılıkları belirtirsin ve bu şartları tamamlayacak herhangi bir sırada başlar. Burda gereken ağ hazırlığının bitmiş olması.

    Örnek olarak /usr/lib/systemd/system içinde 123deneme.service dosyası içeriği:

     
    [Unit]
    After=network.target

    [Service]
    ExecStart=/usr/local/deneme.sh

    [Install]
    WantedBy=multi-user.target


    "After=network.target" ile gerekli bağımlılığı yazmış oldum.

    systemctl enable 123deneme.service # bu komutla servis dosyasının /etc/systemd/system/multi-user-target/ içinde bir kısayolu oluşturulur, boot edilirken çalıştırılır. (eğer default.target multi-user-target'i işaret ediyorsa, büyük ihtimalle böyledir)

    Doğrudan çalıştırmak istersen systemctl start 123deneme.service. Boot'ta çalışmasını iptal etmek için systemctl disable 123deneme.service Durdurma ve yeniden başlatma için vs komut tanımlanabilir, İngilizcen varsa şu sayfa yardımcı olur:https://wiki.archlinux.org/index.php/Systemd

    O scripti root olarak çalıştırman gerekiyorsa güvenli olduğundan kesinlikle emin ol. Yukardaki örneğe göre direkt ExecStart içinde yazarsan root olarak çalışır. Gerekmiyorsa başka bir kullanıcı adıyla çalıştır.

    Systemd'nin user modu var ama ben bilmiyorum. Benim alternatif çözümüm; bir bash script yaz önce, içeriği şöyle:

     
    #!/bin/bash
    su -c /dizin/her_nerdeyse/ipUpdate.pl normal_kullanıcı_adı


    Sonra bu dosyayı root sahipliğiyle bir root dizininde sakla. Service dosyasında "ExecStart=" ile belirt.

    not: "enable"nin tek işi kısayol oluşturmak değil. service dosyasını "enable"den önce "start" yaparak denemek istersen systemctl daemon-reload komutuyla servisleri taratman gerekir. Servis dosyasında değişiklik yapman durumunda da aynısı geçerli.



    < Bu mesaj bu kişi tarafından değiştirildi Liu Kang -- 9 Şubat 2015; 20:41:06 >




  • Root harici user icin extra bilgi icin oncelikle cok tesekkur. Ileride kesin ihtiyacim olur cidi islerle ugrasmaya baslayinca.
    Benim suan sadece root olarak yapmam gerekiyor. Systemctl daemon-reload komutunu hic kullanmadim belki sorun bundadir. Bide /systemd/system/ altina olusturulacak sonu service ile biten dosyayi terminalden hangi komutla olusturuyoruz tuch ile mi ve bu dosyayi vim ile mi duzenliyorum nano ile mi. Bunlardan birilerinde hata yapiyorum sanirim. Ingilizce forumlarda sordugum soru sorulmus cevaplanmis. Bahsedildigi kadarini yapiyorum olmuyor. Tabi bu tuch nano vim sorularimin cevabi yok

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Sadece bir metin dosyası hazırlayıp uygun izinlerle bir yere yazma/taşıma/kopyalama meselesi.

    Terminali aç.

    Root ol: su <enter> şifre <enter>

    Sonra /usr/lib/systemd/system dizinine git: cd /usr/lib/systemd/system

    Nano programını çalıştır: nano

    Service dosyasını yaz. (Ekrandan fareyle kopyalayıp terminale ctrl+shift+V ile yapıştırabilirsin) ctrl+O tuşuna basarak 123deneme.service ismini verip kaydet. Daha sonra bunu düzenlemen gerekirse o dizine gelip nano 123deneme.service komutunu çalıştır. Ya da herhangi bir yerden nano /usr/lib/systemd/system/123deneme.service ile de ulaşabilirsin.



    < Bu mesaj bu kişi tarafından değiştirildi Liu Kang -- 9 Şubat 2015; 22:35:06 >
  • Tesekkur deneyince yazarim sonucu
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.