Hala systemd ile uğraşıyorum ve bir şeyle karşılaştım. Çok fazla sorun değil, ama bunun nasıl olduğu hakkında daha fazla bilgi edinmek istiyorum. Başka bir yerde buna referans bulamadım.
Öncelikle, hizmetler için özel birim dosyalarının girilmesi gerektiğini anlıyorum /etc/systemd/system
. Ancak, birim dosyaları başka bir yerde bulunabilirse, sunucularımızın yönetimi için iyi olurdu.
Dokümantasyonda, ünite dosyalarını şöyle bağlayabileceğinizi gördüm:
systemctl link /path/to/servicename.service
Bu, yukarıdakilere bir bağlantı oluşturur /etc/systemd/system
. Artık bu hizmeti başlatabilir / durdurabilirsiniz. Yüzeyde bu, hizmetlerimizi yönetmemiz için iyi bir yol gibi görünüyordu.
Ancak, böyle bir 'bağlantılı' birim dosyasını etkinleştirmeye çalışmak hataya neden olur:
root@test1:/etc/systemd/system# systemctl link /root/myservice.service
Created symlink from /etc/systemd/system/myservice.service to /root/myservice.service.
root@test1:/etc/systemd/system# systemctl status myservice.service
* myservice.service - My Test Service
Loaded: loaded (/root/myservice.service; linked; vendor preset: enabled)
root@test1:/etc/systemd/system# systemctl enable myservice.service
Failed to execute operation: No such file or directory
Aynı birim dosyasını kullanarak, ancak /etc/systemd/system
bağlantı yerine yerine kopyalandı :
root@test1:/etc/systemd/system# cp -p /root/myservice.service .
root@test1:/etc/systemd/system# systemctl daemon-reload
root@test1:/etc/systemd/system# systemctl status myservice.service
* myservice.service - My Test Service
Loaded: loaded (/etc/systemd/system/myservice.service; disabled; vendor preset: enabled)
root@test1:/etc/systemd/system# systemctl enable myservice.service
Created symlink from /etc/systemd/system/multi-user.target.wants/myservice.service to /etc/systemd/system/myservice.service.
Bundan, ünite dosyalarındaki bağlantılı sistemin sistem başlangıcında çağrılmasının mümkün olmadığı görülmektedir.
Bu durumda, 'link' işlevselliğinin anlamı nedir? Dokümanlardan şöyle diyor:
bağlantı FILENAME
Birim dosyası arama yollarında olmayan bir birim dosyasını birim dosyası arama yoluna bağlayın. Bu, bir birim dosyasına mutlak bir yol gerektirir. Bunun etkisi devre dışı bırakılarak geri alınabilir. Bu komutun etkisi, doğrudan birim arama yoluna yüklenmemiş olmasına rağmen, bir birim dosyasının başlatma ve diğer komutlar için kullanılabilir olmasıdır.
systemctl enable
bunu da yapacağını unutmayınsystemctl link
, bu yüzden 2 komutu yazmanıza gerek yok ;-)