Munir'in bahsettiği tam olarak bunu nasıl yaptığınızdır. Temel olarak bir servicedosya oluşturur ve 30 kez başlatırsınız. Şimdi bu biraz tuhaf görünebilir, ancak yanlış davranırsa bunlardan birini kapatabilme ve hepsini kapatmak zorunda kalmamak gibi avantajları vardır. Ayrıca yönetimi kolaylaştırmak için yapabileceğiniz bazı şeyler vardır.
İlk olarak, birim dosyası. Gibi bir dosya oluşturun /etc/systemd/system/test@.service. Önemli olan @sembol.
İçeriği şöyle görünebilir:
[Service]
ExecStart=/bin/sleep 600 %I
[Install]
WantedBy=multi-user.target
Sonra bunu başlatmak systemctl start test@1.service, systemctl start test@2.service.
Başlatılan işlemler şöyle görünecektir:
root 17222 19 0 0.0 0.0 Ss 00:05 /bin/sleep 600 1
root 17233 19 0 0.0 0.0 Ss 00:02 /bin/sleep 600 2
Başladığınız andan %Isonra koyduğunuz şeyle değiştirildiğine dikkat edin @.
Tüm 30'a küçük bir kabuk-fu ile başlayabilirsiniz:
systemctl start test@{1..30}.service
Ayrıca herhangi bir normal hizmeti gibi açılışta etkinleştirebilirsiniz: systemctl enable test@1.service.
Şimdi, yönetimi kolaylaştırmak için yapabileceğiniz şeylerle kastettiğim: Belki de test@{1..30}.servicehepsini yönetmek için kullanmak istemezsiniz . Biraz hantal. Bunun yerine hizmetiniz için yeni bir hedef oluşturabilirsiniz.
Şununla oluştur /etc/systemd/system/test.target:
[Install]
WantedBy=multi-user.target
Ardından, /etc/systemd/system/test@.serviceşu şekilde görünecek şekilde ayarlayın :
[Unit]
StopWhenUnneeded=true
[Service]
ExecStart=/bin/sleep 600 %I
[Install]
WantedBy=test.target
Systemd ile yeniden yükleyin systemctl daemon-reload(yalnızca birim dosyasını değiştiriyorsanız gereklidir ve önceki sürümünü atlamıyorsanız). Ve şimdi yönetilmesini istediğiniz tüm hizmetleri yaparak etkinleştirin systemctl enable test@{1..30}.service.
(Hizmeti daha önce olduğu gibi etkinleştirdiyseniz WantedBy=multi-user.target, bağımlılığı temizlemek için önce devre dışı bırakın)
Şimdi yapabilirsiniz systemctl start test.targetve systemctl stop test.target30 işlemin tümünü başlatır / durdurur.
Ve yine, başka birim dosyası gibi açılışta etkinleştirebilirsiniz: systemctl enable test.target.