Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
1095
Tıklama
0
Öne Çıkarma
Arch Linux & Systemd hakkında geniş bilgi arıyorum
D
9 yıl
Teğmen
Konu Sahibi

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.



L
9 yıl
Binbaşı

İ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 >

D
9 yıl
Teğmen
Konu Sahibi

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ı >
Bu mesaja 1 cevap geldi.
L
9 yıl
Binbaşı

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 >
Bu mesaja 1 cevap geldi.
D
9 yıl
Teğmen
Konu Sahibi

Tesekkur deneyince yazarim sonucu



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.