Shalay tunnel-ku wuu shaqeynayay, subaxdana unit-ku waa dhintay, journal-ka waxaa ku qoran Failed at step EXEC spawning /usr/local/bin/vpnclient. Aqoonsiga, marinnada iyo akoonka marnaba kuma soo dhex galaan jumladaas. systemd wuxuu ExecStart u rogay marin, wuxuu kernel-ka weydiistay inuu fuliyo, kernel-kuna wuu diiday, inta badan sababtoo ah waxba kama jiraan marinkaas ama faylku ma fuli karo. U qaado cillad tan sidii dhibaato fayl iyo argv ah ilaa amarka la falanqeeyay uu caksiga caddeeyo.

Sababta EXEC ugu guuldareysto ka hor inta aanay xaqiijintu bilaaban

systemd kuma socodsiiyo ExecStart shell. Waxay sameyneysaa fork, waxay ka dhistaa vector doodaha line-ka, waxayna ku wacdaa execve qaybta koowaad. Haddii wicitaankaas guuldareysto, adeeggu marnaba ma gaaro koodhka u gaar ah macmiilka VPN, sidaas darteed wax ka beddelka profile ama hubinta aqoonsiga ma caawin karo.

Koodhka xaaladdu wuxuu ka soocaa qoyskan shilalka caadiga ah. Unit ku baxa status=203/EXEC marnaba ma billaabin geedi socod; unit billaaba oo markaas ku baxa status=1 laga yaabee inuu ku guuldareystay xaqiijinta, DNS ama marin-u-helista. Akhri koodhka ka hor inta aanad akhrin log-ga macmiilka, sababtoo ah xaaladda koowaad log-ga macmiilku wuu madhnaan doonaa.

Marinka journal-ka ku yaal waa kii systemd isticmaalay, ma aha qasab kii aad adigu beddeshay. Faylasha drop-in iyo soo-saarka generator-ka waxay dhaafi karaan faylka iibiyaha, daemon-reload duugoobayna wuxuu line-kii hore ku reebaa xusuusta. Sidaas darteed ogaanshaha koowaad waa inaad systemd weydiiso waxa uu u arko amarka, halkii aad furi lahayd faylka aad xasuusato inaad beddeshay.

Saddex meelood oo marinka binary-ga lagu qoro

Macmiilka VPN ee laga rakibay xirmo qaybinta, script iibiyaha iyo tarball sii-deyn ayaa ku dhici kara saddex prefiks oo kala duwan. Unit-ka, qaanuunka mudnaanta iyo rakibaha mid kastaa wuxuu diiwaangeliyay mid ka mid ah prefisyadaas, cilladuna waxay soo baxdaa marka laba saddexda ka mid ah aysan is waafaqsaneyn.

RecordCommon valueHow to read it
Unit or drop-in/usr/local/bin/vpnclientsystemctl cat vpnclient.service
Installed binary/usr/bin/vpnclientcommand -v vpnclient, then ls -l the result
Sudoers grant/opt/vpnclient/bin/vpnclientsudo grep -r vpnclient /etc/sudoers.d/

Isku-dhac la taaban karo wuxuu u eg yahay sidan: script iibiyuhu wuxuu ku rakibaa /usr/local/bin, tarball-ka waxaa lagu furay /opt hoostiisa, unit-kuna weli wuxuu sheegayaa marinka hore /usr/bin ee xirmadii hore. Mid keliya oo ka mid ah faylashaas ayaa jira, marar dhif ahna waa kan ExecStart ku jira.

Go'aanso marinka qaanuuniga ah ka hor inta aanad beddelin mid ka mid ah faylasha. Haddii binary-gu leeyahay xirmada qaybinta, marinka xirmadu waa qaanuuniga ah unit-kuna waa inuu raaco. Haddii uu leeyahay script iibiyaha, isla qaanuunkaas ayaa khuseeya prefikska iibiyaha. Koobista binary-ga ee u dhexeeya prefisyada waxay abuurtaa laba koobi oo kala tagaya cusboonaysiinta xigta.

Marka amarka xardhan yahay uu noqdo magac fayl

Habka labaad ee guuldareysiga wuxuu ku dhuumanayaa gadaasha isla line-ka journal-ka. Qof ayaa tan ku qora unit-ka wuxuuna filayaa in macmiilku ku xirmo inta lagu jiro boot-ka:

ExecStart=/usr/bin/"vpnclient connect office"

systemd waxay qiimaha u qaybisaa erayo, sidaas darteed erayga koowaad wuxuu noqdaa /usr/bin/vpnclient connect office, xardhana waxaa loo tirtiraa sidii syntax kooxeyn. Kadib kernel-ku wuxuu raadiyaa fayl magaciisa ay ku jiraan banaan, mana jiro. Khaladku waa mid la mid ah binary maqan inkastoo binary-ga la rakibay.

Qaabka la taageeray waa fayl dhab ah oo la fulin karo oo ay ku xigaan doodaha gooni ah, tusaale ahaan ExecStart=/usr/bin/vpnclient connect office. Haddii socodka shaqadu run ahaantii u baahan yahay tuubo ama silsilad, ku rid script oo wac script-ka, sababtoo ah ExecStart ma laha &&, ma laha tuubooyin mana laha fidinta glob.

Hagaaji unit-ka, ma aha nidaamka faylasha

Xalka soo jiidashada leh waa xiriir calaamadeed oo ka socda marinka la filayo ilaa binary-ga dhabta ah. Wuxuu shaqeeyaa ilaa xirmadu cusboonaato oo xiriirku u tilmaamo fayl la tirtiray, ama ilaa calaamadda SELinux aysan u dhigmin bartilmaameedka. Dooro inaad unit-ka ku hagaajiso drop-in, si faylka iibiyaha uu taaban la'aan u ahaado oo cusboonaysiintu saadaalin karto.

Qaanuunka mudnaanta waa inuu la jaan qaadaa isla marinka iyo isla amarrada hoose. Diiwaanka sudoers ee /usr/local/bin/vpnclient ma ogola /usr/bin/vpnclient, diiwaanka ogolaanshaha dood kasta wuxuuna u oggolaanayaa geedi socod kasta oo maxalli ah inuu dib u habeyn ama joojiyo tunnel-ka. Siin labada fal ee unit-ku u baahan yahay oo ka fogee dildilaaca haddii joojinta adeeggu horey u xirdo interface-ka.

Halkan ayaa isbarbardhiggu faa'iido leeyahay: unit-ka, keydka xirmooyinka iyo sudoers waa inay sheegaan hal marin. Markay sidaas yeeshaan, khaladka EXEC wuu libdhaa iyada oo aan reboot iyo koobi binary ah oo meel saddexaad ah la qaadin.

Caddee amarka la falanqeeyay ka hor dib u bilaabista

sudo systemctl daemon-reload
sudo systemctl cat vpnclient.service
systemctl show -p ExecStart vpnclient.service
systemd-analyze verify /etc/systemd/system/vpnclient.service
sudo systemctl restart vpnclient.service
systemctl status vpnclient.service --no-pager

systemctl show waa soo-saarka go'aanka leh sababtoo ah waxay daabacdaa argv-ga uu systemd run ahaantii falanqeeyay, oo ay ku jiraan drop-in kasta. systemd-analyze verify waxay qabataa marin maqan ama aan la fulin karin ka hor inta aanad dib u bilaabin, amarka status-ka dib u bilaabidda kadibna wuxuu sheegaa haddii geedi socodku hadda jiro.

Haddii unit-ku bilaabmo oo markaas guuldareysto, waxaad ka baxday qoyska EXEC oo waxaad gashay maaraynta khaladaadka u gaar ah macmiilka. Journal-ka ka raadi fariinta macmiilka, ma aha guuldareysi execve kale. Hayso diff-ka unit-ka iyo diff-ka sudoers oo wadajir ah diiwaanka isbeddelka, si cusboonaysiinta xigta aysan si aamusnaan ah u soo celin marin kala qaybsan.

Maqaallo la xiriira