Услуге на Линук-у се покрећу чим се ваш систем покрене или поново покрене. Ево како можете да креирате системски сервис који се аутоматски покреће на свом Линук рачунару.
системд је сервис менаџер за многе познате Линук дистрибуције. Услуга је јединица програма која обично ради у позадини. Услуге се по природи аутоматски покрећу чим се систем покрене и могу да раде без надзора.
Ако треба да креирате задатак или програм са аутоматским покретањем који се извршава сваки пут када покренете или поново покренете систем, можете размислити о креирању нове услуге. Хајде да научимо како да креирамо нову, прилагођену системд услугу на Линук-у.
Корак 1: Креирање сервисне датотеке
Постоји неколико корака потребних за креирање нове системд сервисне датотеке. Први од њих је креирање датотеке јединице за услугу. Пре него што креирате сервисну датотеку, морате разумети њену структуру.
Хајде да проучимо сервисни фајл тако што ћемо из вашег Линук система извући прави, функционални сервисни фајл. Испод можете видети сервисни фајл за вмтоолс даемон услугу.
Ова конкретна услуга можда неће бити присутна на вашем систему осим ако такође не користите Линук на ВМваре-у са инсталираним ВМваре алатима. Услуга о којој је реч није важна јер све услуге, односно фајлови сервисних јединица, имају исту основну структуру са одређеним прилагођавањима по потреби.
Све системске сервисне датотеке морају имати три одељка: [Услуга], [Јединица], и [Инсталирај], и неколико параметара испод сваког одељка. Ево шта сваки одељак садржи и зашто је важан:
1. Јединица
Тхе Јединица одељак укључује важне метаподатке као што су опис и зависности услуге. Има три параметра: Опис, пре него што, и После. Као што исто сугерише, Опис параметар пружа неки контекст услуге и шта она ради.
Тхе пре него што и После параметри дефинишу услове које треба испунити да би се услуга извршила. На пример, ако покрећете услугу веб сервера, желели бисте да се она покрене тек када мрежна услуга буде онлајн. Дакле, поставили бисте вредност После параметар мрежном сервису.
2. Услуга
Тхе Услуга одељак садржи два обавезна параметра: ЕкецСтарт, Тип, и неколико других опционих параметара као што је ЕкецРелоад, и још.
ЕкецСтарт дефинише команду која ће се извршити када се сервис покрене, док је Тип параметар одређује тип процеса који се покреће.
3. Инсталирај
Овај одељак и његови подаци се позивају сваки пут када омогућите или онемогућите услугу помоћу наредба системцтл.
Има неколико параметара. Једна од уобичајених и неопходних је ВантедБи. Тхе ВантедБи параметар дефинише циљне јединице које треба да се покрену кад год је услуга омогућена. Подразумевана вредност је вишекориснички.циљ.
Овде поменути параметри нису једини параметри које можете подесити у јединичној датотеци. Комплетну листу параметара можете добити из званична системд.екец документација или уписивањем ман системд.екец у терминалу.
Датотека системске јединице сервиса увек се завршава са ".сервис" проширење и мора се чувати у /etc/systemd/system/ именик. Креирајте сервисну датотеку користећи команду додира са повишеним привилегијама стављајући му префикс са судо команда:
судо тоуцх /етц/системд/систем/.сервис
Сада када сте креирали сервисни фајл, хајдемо да га попунимо потребном синтаксом да би услуга била важећа и функционисала.
Корак 2: Конфигурисање сервисне датотеке
За демонстрацију, креираћете пример услуге која се извршава Нмап за скенирање портова на вашој машини и чувајте излаз у датотеци сваких тридесет секунди. Да бисте постигли овај задатак, ево како структурирати датотеку сервисне јединице:
[Јединица]
Опис=Демонстрација прилагођеног нмап сервиса.
Афтер=нетворк.таргет[Услуга]
Типе=симпле
Корисник=роот
ЕкецСтарт=/уср/бин/нмап -сС -О -оН /хоме//ресултс.ткт лоцалхост
Рестарт=увек
РестартСец=30
[Инсталирај]
ВантедБи=мулти-усер.таргет
Иако су овде поменути параметри претходно објашњени, хајде да пређемо на то како они утичу на нашу новостворену услугу и такође истражимо нове уведене у овој јединици: Поново покренути, РестартСец, и Корисник.
Ево шта значе параметри у сваком одељку:
- Опис: Људски читљив текст за опис функционалности услуге.
- Афтер=нетворк.таргет: Диктирање системд-у да ова услуга зависи мрежа.циљ и требало би да почне тек после мрежа.циљ сервис је започет. Напоменути да После се не користи за успостављање било каквог директног односа зависности, он једноставно делује као окидач.
- Тип=једноставно: Постоји више врста услуга. Међутим, услуга у овој демонстрацији је редован процес и зато је тако проглашавамо. Можете пронаћи све различите вредности за ово на званичној страници са документацијом до које је раније дошло.
- Рестарт=увек: То значи да кад год услуга изађе, увек треба поново да се покрене.
- РестартСец=30: Ово поставља интервал између сваког покретања услуге на 30 секунди.
- Корисник=роот: Ово дефинише да ће услуга радити као роот корисник. У овом случају, ово је корак који морате урадити јер Нмап неће моћи да ради без роот привилегија.
- ЕкецСтарт: Ова директива садржи апсолутну путању до програма који треба да се изврши заједно са свим потребним ознакама или аргументима неопходним да би програм правилно функционисао.
- ВантедБи=мулти-усер.таргет: Овај параметар у датотеци услуге одређује који циљ треба да укључи или „жели“ услугу. Када је услуга укључена у циљ, то значи да би услуга требало да се покрене када систем достигне тај циљ током процеса покретања. У овом случају, услуга би требало да се покрене када систем уђе у вишекориснички режим. Вишекориснички режим је стање у којем је систем потпуно покренут и омогућава више корисника да се пријаве и користе систем.
Корак 3: Омогућавање и покретање услуге
Сада када сте креирали јединичну датотеку, једини кораци који су преостали да активирате вашу услугу су омогућавање и покретање. Можете омогућити и покренути своју услугу помоћу наредбе системцтл.
Ево како да користите системцтл да омогућите, покренете и проверите статус ваше услуге:
судо системцтл енабле .сервис
судо системцтл старт .сервис
судо системцтл статус .сервис
Сада би ваша прилагођена услуга требало да ради! У овом случају, требало би да видите да се Нмап скенирање покреће сваких тридесет секунди и да се излаз чува у ресултс.ткт датотеку у матичном директоријуму.
Подешавање системд услуге на Линук-у је једноставно!
Иако подешавање прилагођене услуге од нуле у почетку може изгледати застрашујуће, то је прилично једноставан начин за подешавање покренути процес без надзора који се самостално извршава за обављање задатака који се понављају за вас и јачање вашег продуктивности.
У демо сервису, једва смо загребали површину о томе како можете да конфигуришете и подесите услугу. Да бисте сазнали све о томе како можете да прилагодите своју услугу, препоручује се да прођете кроз званичну документацију која је повезана у напомени.
Ако вам се подешавање и одржавање услуге чини као превелики задатак, размислите о провери алтернативног начина за аутоматизацију задатака који се понављају на Линук-у.