Omistan raspberry pin jossa on rasbian käyttöjärjestelmä. Haluaisin pyörittää siltä yhden pelin osaa ja tarvitsisin siihen jonkun koodin joka hakee localhostilta php sivua. Eli siis ideana on että raspberry pi on kokoajan päällä ja se hakee 2 min välein php tiedostoa. Osaisin tehdä sen c# mutta raspian ei taida tukea sitä. Tiedän että java ainakin toimii niin voisiko joku nopesti kirjoittaa sen koodin tai edes kertoa millä functiolla haen nettisivua. Javan perusteet on kunnossa mutta en ole hakenut netistä mitään. Huomautan viellä ettei tietoa sivulta tarvitse tuoda riittää vain että php koodi käydään läpi. Mutta jos se on helppoa niin aina parempi.
Kirjoita komentoriville:
watch -p -n 120 curl -sSo /dev/null http://...osoite.php
Voit lopettaa skriptin painamalla Control-C.
Selitys, mitä rivillä tapahtuu:
# ajastusohjelma: watch # watch suorittaa seuraavan komennon määrätyin välein -p # suoritusväli pidetään tarkkana, vaikka komento olisi hidas -n 120 # suoritusväli on 120 sekuntia # ajastettava komento: curl # curl lataa tiedoston netistä -s # ei tulosteta latauksen etenemistä; se ei toimi watchin kanssa -S # tulostetaan silti virheilmoitukset, jos tulee -o /dev/null # tallennetaan ladattava sivu tiedostoon /dev/null = ei tallenneta http://... # ladattavan sivun osoite
Voit tehdä tästä myös tiedoston, jolloin alkuun kannattaa laittaa #!/bin/sh ilmoittamaan käyttöjärjestelmälle, millä skripti ajetaan.
#!/bin/sh watch -p -n 120 curl -sSo /dev/null http://...osoite.php
Tiedostosta saa suoritettavan chmod-komennolla:
chmod +x kooditiedosto.sh
Tiedoston suoritukseen täytyy laittaa polku (edes ./) eteen, ellei tiedosto ole PATHissa.
# ajo nykyisestä hakemistosta: ./kooditiedosto.sh # ajo koko polun perusteella: /home/tunnus/kooditiedosto.sh
.Net Core 2:lle käännettyä C#-koodia kyllä pystyy ajamaan RasPissa
https://github.com/dotnet/core/blob/master/
Se ei silti poista sitä tosiasiaa, että erillisen ohjelman tekeminen tällaiseen olisi aivan turhaa, kun se onnistuu helposti Linuxin vakiotyökaluillakin, kuten Metabolixin edellinen esimerkki osoittaa.
Näyttäisikö joku viellä että miten voin suorittaa vaikka 3 samanlaista koodia jotka hakevat 3 eri nettisivua samana aikavälinä. Ja siis pystyn pyörittämään tuota taustalla ja voin tehdä koneella muuta ja pitääkö terminal olla auki vai pystynkö sulkea rastista koko ohjelman suorituksen?
watch -p -n 120 curl -sSo /dev/null {http://...osoite1.php,http://...osoite2.php,http://...osoite3.php}
Jos koko osoite ei ole eri, niin voit laittaa myös vain muuttuvan osan:
watch -p -n 120 curl -sSo /dev/null http://...osoite{1,2,3}.php
Tekee saman kuin ensimmäinen
Ei tarvitse jättää terminalia auki. Lisää komennon alkuun nohup ja loppuun &
nohup watch -p -n 120 curl -sSo /dev/null http://...osoite{1,2,3}.php &
Sen jälkeen voit sanoa exit terminalille (tai sulkea sieltä kulmasta)
Aihe on jo aika vanha, joten et voi enää vastata siihen.