Az AnyDesk távoli asztal alkalmazás telepítési leírását itt olvashatod:
https://linuxmint.hu/blog/2022/07/anydesk-tavoli-asztal-alkalmazas
Az AnyDesk Systemd szolgáltatásként jegyezteti be magát a rendszerbe.
Az alkalmazás a telepítés és a frissítés alkalmával a Systemd Multi-user Target könyvtárba symlink-eli magát, mégpedig úgy, hogy minden alkalommal (telepítés vagy frissítés) újra létrehozza az /etc/systemd/system/ elérési úton az anydesk.service fájlt, és a fájlról symlinket készít az /etc/systemd/system/multi-user.target.wants/ útvonalon található anydesk.service fájlra.
A cél:
- nem szeretnénk, hogy a rendszerrel együtt induljon el az alkalmazás, és folyamatosan fusson a háttérben.
- azt szeretnénk, hogy csak akkor fusson, amikor mi indítjuk a menüből, amikor tényleg szükségünk van rá.
Frissítés után - korábban:
Az automatikus indítás kikapcsolása: a telepítés leírásában olvasható Indítópult alkalmazásban történő kikapcsolás ma már nem működik...
Frissítés után - manapság:
Azzal hogy a frissítés eseménye felülírja a Systemd szolgáltatás beállításait rögzítő fájlt valamint annak symlink-jét, egyben felülírja a
sudo systemctl disable anydesk.service
parancssorral rögzített beállítást, miszerint, az Anydesk ne induljon el a rendszerrel. Ejnye.
Automatikus indulás kikapcsolása
Kikapcsolás a systemctl használatával
Javaslat: Használd (használhatod).
Ez a módszer törődést igényel minden egyes AnyDesk frissülés alkalmával. Lépj a következő fejezetre.
Kapcsold ki az automatikus indulást (parancssor és kimenet):
sudo systemctl disable anydesk.service Removed /etc/systemd/system/multi-user.target.wants/anydesk.service.
Mindez azonban csak a következő AnyDesk frissítésig működik.
Kikapcsolás a Cron időzítő használatával
Javaslat: Használd.
A Cron nyújt megoldást a szolgáltatás kikapcsolására és leállítására jelenleg.
A systemctl parancssor futtatásához admin jog szükséges, ezért a rendszer Cron szerkesztése szükséges (sudo).
Nyiss terminált, és futtasd (crontab):
sudo crontab -e
Válaszd ki az alapértelmezett szerkesztőt, például a nano szövegszerkesztőt.
Lapozz a szöveg végére, és sorköz után illeszd be a következő tartalmat:
@reboot /usr/bin/systemctl disable anydesk.service @reboot /usr/bin/systemctl stop anydesk.service
Ments el a változtatást, és lépj ki a szövegszerkesztőből:
Ctrl + O, és Enter,
majd Ctrl + X
Indítsd újra a rendszert.
Cron beállítás magyarázat, használat:
- a systemctl disable kapcsolója kikapcsolja, a stop kapcsolója leállítja az AnyDesk szolgáltatást.
- a cron @reboot kapcsolójának hatására a parancssorok minden rendszer újraindítás alkalmával lefutnak.
- a cron parancssorban a teljes elérési utakat szükséges használni (példa):
which systemctl
A rendszer feladatok listázása:
sudo crontab -l
Eredmények:
sudo systemctl list-unit-files --type=service UNIT FILE STATE VENDOR PRESET anydesk.service disabled enabled
systemctl status anydesk.service ● anydesk.service - AnyDesk Loaded: loaded (/etc/systemd/system/anydesk.service; disabled; vendor preset: enabled) Active: inactive (dead)
systemctl is-enabled anydesk.service disabled
Jegyzet
A beállítás kikapcsolása a sorok törlése nélkül:
# @reboot /usr/bin/systemctl disable anydesk.service # @reboot /usr/bin/systemctl stop anydesk.service
Enjoy :-)
Érdekességek
Kikapcsolás a Systemd használatával (90-systemd.preset)
Javaslat: Ne használd.
Ez a módszer az első rendszer újraindításkor működött, utána nem.
Magyarázat:
Couldn't parse line 'stop anydesk.service'. Ignoring
Az /usr/lib/systemd/system-preset/ elérési úton lakó 90-systemd.preset fájlt fogjuk szerkeszteni (*). Ha a te rendszereden más a neve -nem 90-systemd.preset- akkor, a létező nevet helyettesítsd be a parancssorokba!
Készíts biztonsági másolatot a fájlról a szerkesztés előtt:
sudo cp /usr/lib/systemd/system-preset/90-systemd.preset /usr/lib/systemd/system-preset/90-systemd.preset.ORIG
Szerkeszd a fájlt a nano szövegszerkesztővel:
sudo nano /usr/lib/systemd/system-preset/90-systemd.preset
Lapozz a szöveg végére, és sorköz után illeszd be a következő tartalmat:
### Disable aggressive startup of AnyDesk service # https://wiki.archlinux.org/title/systemd#Enable_installed_units_by_default disable anydesk.service stop anydesk.service
Ments el a változtatást, és lépj ki a szövegszerkesztőből:
Ctrl + O, és Enter,
majd Ctrl + X
Frissítsd a rendszert a változtatásokra:
sudo systemctl daemon-reload
Indítsd újra a rendszert.
Eredmények:
A stop sorra utal a jelzés is (figyelmen kívül hagyva).
sudo systemctl list-unit-files --type=service /usr/lib/systemd/system-preset/90-systemd.preset:51: Couldn't parse line 'stop anydesk.service'. Ignoring. UNIT FILE STATE VENDOR PRESET anydesk.service disabled disabled
systemctl status anydesk.service --no-pager ● anydesk.service - AnyDesk Loaded: loaded (/etc/systemd/system/anydesk.service; disabled; vendor preset: disabled) Active: inactive (dead)
systemctl is-enabled anydesk.service disabled
Kikapcsolás a Systemd szolgáltatás szerkesztésével (anydesk.service)
Javaslat: Ne használd.
A WantedBy= beállítás, amely például a következő fejezetben szereplő override.conf fájlba is kerülne, az /etc/systemd/system/ útvonalon található anydesk.service fájlban közvetlenül is beállítható, azonban, ez csak elméleti lehetőség, mert a beállítás nem hatékony.
Készíts biztonsági mentést az anydesk.service fájlról a szerkesztés előtt:
sudo cp /etc/systemd/system/anydesk.service /etc/systemd/system/anydesk.service.ORIG
Szerkeszd a fájl tartalmát (nano):
sudo nano /etc/systemd/system/anydesk.service
Az [Install] szövegtömbnél tedd magyarázatba (kapcsold ki | # ) a WantedBy=multi-user.target sort, majd illeszd be új sorként a WantedBy= sort a szöveg végére.
Mindez a gyakorlatban (a fájl teljes tartalma):
[Unit] Description=AnyDesk Requires=network.target After=systemd-user-sessions.service [Service] Type=simple ExecStart=/usr/bin/anydesk --service PIDFile=/var/run/anydesk.pid KillMode=mixed TimeoutStopSec=30 User=root LimitNOFILE=100000 [Install] #WantedBy=multi-user.target WantedBy=
Mentsd a változtatásokat, és lépj ki a nano szövegszerkesztőből:
Ctrl + O, és Enter,
majd Ctrl + X
Alkalmazd a változtatást:
sudo systemctl daemon-reload
A szerkesztés a full kapcsolóval is kivitelezhető (*):
sudo systemctl edit --full anydesk.service
Kikapcsolás a Systemd szolgáltatás felülírásával (override.conf)
Javaslat: Ne használd.
A módszer régebben működött, manapság már nem. (*)
Készítsd el az override.conf fájlt:
sudo systemctl edit anydesk.service
Illeszd be a szöveget
[Install] WantedBy=
Mentsd el a változtatást (Ctrl + O)
- a mentés helyének szerkesztésekor figyelj arra, hogy
- az elérési út tökéletes, ne nyúlj hozzá,
- de végét szerkeszd: azaz, a fájl neve override.conf legyen!
Véglegesítsd a mentést (Enter).
Lépj ki a szövegszerkesztőből (Ctrl + X).
Frissítsd a rendszert a megváltozott beállításra:
sudo systemctl daemon-reload
Kikapcsolás a Chattr használatával
Javaslat: Ne használd.
Ez a tervezett és elképzelt megoldás mondhatni, favágó módszer, a lényege az, hogy a chattr alkalmazással megtiltom, hogy bárki felülírja az anydesk.service fájlt..., és erre a frissülő alkalmazás sem lesz képes. Ne használd más alkalmazásnál, mert
- tudtommal, csak az AnyDesk Systemd szolgáltatásának indulása nem kapcsolható ki másképp (végérvényesen),
- azaz, a szokásos Systemd kikapcsolás (disabled) természetesen működik a többi alkalmazásnál, pontosabban, az alkalmazások frissítése általában nem írja felül a felhasználó által alkalmazott disabled beállítást).
Kapcsold ki a szolgáltatás automatikus, azaz ismétlődő indítását (disable). A symlink törlésre kerül a multi-user.target könyvtárból),
sudo systemctl disable anydesk.service
és a szolgáltatást (stop).
sudo systemctl stop anydesk.service
Állítsd be a szolgáltatás beállító fájlját csak olvashatóra chattr alkalmazás +i kapcsolójával:
sudo chattr +i /etc/systemd/system/anydesk.service
Teszt
A tesztalany: a Debian 11 kiadás.
Eltávolítottam az AnyDesk alkalmazást (a remove kapcsoló meghagyja a beállításokat):
sudo apt-get remove anydesk
Hibaüzenet (de az eltávolítás sikerült):
Removing anydesk (6.2.1) ... rm: '/etc/systemd/system/anydesk.service' nem törölhető: A művelet nem engedélyezett
Letöltöttem innen az AnyDesk korábbi, 6.1.1 verziószámú telepítőjét, és a GDebi csomagkezelő használatával telepítettem.
Hibaüzenet (kb.): az alkalmazás telepítése nem sikerült, mert nem írható a /etc/systemd/system/anydesk.service fájl.
A valóság: a telepítés sikerült.
Mint látni fogod, nem a hibaüzenet lesz a probléma, hanem az, hogy a vélelmezett megoldás további problémát okoz.
Frissítem a rendszert, hogy az AnyDesk a tükörről elérhető legfrissebb verzióra frissüljön, és a beállításom tesztje miatt.
sudo apt-get update
sudo apt-get upgrade
Hibaüzenet:
Retrieving bug reports... Done Parsing Found/Fixed information... Done Reading changelogs... Done (Adatbázis olvasása ... 493052 files and directories currently installed.) Preparing to unpack .../anydesk_6.2.1_amd64.deb ... rm: '/etc/systemd/system/anydesk.service' nem törölhető: A művelet nem engedélyezett Unpacking anydesk (6.2.1) over (6.1.1) ... Beállítás: anydesk (6.2.1) ... rm: '/etc/systemd/system/anydesk.service' nem törölhető: A művelet nem engedélyezett dpkg: error processing package anydesk (--configure): installed anydesk package post-installation script subprocess returned error exit status 1
Értelemszerűen, nem a chattr a megoldás, hiszen, hibaüzenetek minden sudo apt-get update és sudo apt-get upgrade alkalmával megismétlődnek. Azt mondom, a kutyafülét sem érdekli a másik jelzés (az alkalmazás telepítése nem sikerült), ha valójában igen.
Az Anydesk frissülése után tehát, minden alkalommal ki kell kapcsolnod a szolgáltatás automatikus, azaz ismétlődő indítását (sudo systemctl disable anydesk.service), és le kell állítanod a szolgáltatást (sudo systemctl stop anydesk.service)? Hm... . Szerencsére, nem feltétlen, hiszen, két lehetséges megoldást közöltem.
Ha ebbe az „érdekességbe” belekezdtél, akkor a javítás megkezdéséhez vond vissza a csak olvasási jogosultságot, azaz, tedd a fájlt írhatóvá is:
sudo chattr -i /etc/systemd/system/anydesk.service
Enjoy :-))
Hozzászólások
Frissítés: Cron
Beküldte kimarite -
Értékelés:
A leírás frissítve a fenti tekintetben.
Frissítés: néhány új dolog, főleg a történelmi érdekességek
Beküldte kimarite -
Értékelés:
A leírás frissítve a fenti tekintetben.