Жүктеліп жатқан бағдарламадан Raspberry Pi-ді тоқтатыңыз

Мен бағдарламаны қотару кезінде қалай іске қосу керектігін түсіндім, бірақ бұл бағдарламаны іске асырғаннан кейін шексіз цикл болып табылады, менде шығудың немесе терминалға қайта оралудың мүмкіндігі жоқ. Пи қуатын берген кезде, ол қара фондағы бағдарламаға барады. Мен оны жүктеу кезінде қалай істеуге болатындығын есіме түсірмедім, мен «esac» деп айтатын нәрседен төмен «0-шығыс» деп айтқан нәрседен жоғары орынға бірнеше кодты қосқан деп ойлаймын. Мені есіме түсірген команда есімде жоқ. (Мен Pi және Python үшін жаңалықтым және тек айналасында ойнап жүрмін.)

Егер кез-келген адам маған осы бағдарламаны жоюға көмектессе немесе редакциялауға мүмкіндік берсе, мен шексіз циклды түзете алатын болар едім. Мен SD картасын жаңа Raspbian-ге толығымен үстінен жазуға тура келмейді. Бірақ маған айтқандай, жүктеу кезінде ештеңе істей алмаймын, Ctrl + C ештеңе істемейді, Ctrl + Alt + Delete де істемейді.

EDIT: Мен SD-картаны компьютерге қойған кезде 11 файлдардың тізімін көремін: bootcode cmdline config жөндеу fixup_cd іс ядро kernel_cutdown kernel_emergency start.elf start_cd.elf

Мен үшін бұл ештеңе жоқ ...

6
Мен бұл Python-мен не істейтінін білмеймін. Бұл Linux теңшелімінің мәселесі.
қосылды автор Daniel Roseman, көзі
@DanielRoseman python тегін жойды
қосылды автор hek2mgl, көзі
SD картасын компьютерге салып, бағдарламаны алып тастаңыз.
қосылды автор ctn, көзі

7 жауаптар

Update: Looks like I failed to get that you want to interrupt the running bootprocess and stop the script.

Ең қарапайым идея pi-ді бұру, SD-картаны ажыратып, оны жұмыс үстеліне қосып, қайтадан сценарийді жылжытып, қайтадан жүктеп алу еді.


Өңделген процестер /etc/init.d /... сценарийлерінде сақталады. Бұл сценарийлер Linux процесінің алғашқы процесі (PID: 1)

But init starts not all scripts in /etc/init.d. This depends on the run level. On a debian system there are 7 run levels.

Әрбір іске қосу деңгейінде келесідей қалта бар:

/etc/rc0.d
...
/rc6.d

онда /etc/init.d файлынан сценарийге арналған softlinks сақталады.

Сценарийді әр жүктеуде орындаудан шығару үшін сіз бұл қалталардың барлық сілтемелерін жоямыз. Әдетте Debian жүйелерінде бұл update-rc.d құралы арқылы жасалады:

update-rc.d NAME_OF_INIT_SCRIPT remove

You should also have a look at the file /etc/rc.local

11
қосылды
мәтінді оқи аласыз ба?
қосылды автор hek2mgl, көзі
Мен @ user2506445-мен келісемін, әдеттегі CTRL-C жұмыс істемейтін бағдарлама ретінде іске қосылған бағдарламаны қалай тоқтатасыз? Сондай-ақ, екі адам жоғарыда айтылғандай, бұл python-err-мен ешқандай қатысы жоқ, егер бұл питон бағдарламасы болса және сіз python бағдарламасын іске қосуды қалай тоқтатуды іздедіңіз ... Әрине, бұл питонмен linux-ті да нәрсе - бұл 2 тегтің болуы мүмкін бе?)
қосылды автор The Huff, көзі
Бірақ терминал терезесіне жете алмаймын. Мен оны қуатпен бергенде, маған ақ мәтінмен шексіз қара экран көрсетіп, одан шығу мүмкін емес.
қосылды автор user2506445, көзі

Alt + PrintScn + k, rc.local-дан жұмыс істеп тұрған процесті жою үшін

5
қосылды
мен үшін жұмыс істеді, рахмет!
қосылды автор Jviaches, көзі

Cmdline.txt пайдалануыңызға болады. Алдымен, sd картаңыздағы cmdline.txt файлын қосыңыз немесе өзгертіңіз. «Init =/bin/sh» қосып, Pi-ді қайта іске қосыңыз және пәрмен жолының сұрауын көре аласыз. Файлды өңдеу үшін «sudo nano /etc/rc.local» теріңіз және қате бар сызықты түсіндіріңіз немесе жойыңыз. Осыдан кейін қайта іске қосыңыз.

3
қосылды

Маған дәл осындай мәселе болды, CTRL + C-ні қолданып процестен шығуға болмады. Жоғарыда көрсетілгендей cmdline.txt файлын редакцияладым, бірақ содан кейін пернетақта үшін қажетті USB драйверлерін жүктемеді.

Осылайша, мен соңында SSH-ге пи-серверге кірдім және менің rc.local файлымды сол қалпында өзгертті.

1
қосылды

Менің осы басылымның басында түсіндірілгендей мәселе болды. Менің Python қолданбам шексіз циклда ұсталды.

Ctrl + Alt + F2

Шамасы, көптеген сынақтар мен қайта іске қосқаннан кейін, менің қосымшамның циклы қайта іске қосылған сайын Терминалдың терезесін көрдім. Мен ұялы телефонымның баяу қозғалысын бейнелейтін бейнебетті жазуды бастағанға дейін ештеңе ұстай алмадым, иә, Linux ұсынысымен терминал терезесі белсенді және пернетақта жазбаларын қабылдай алды.

Бәрі жасаған қылмыскерді файлды редакциялаумен болды

sudo nano filename command 

және осындай файлды шын мәнінде бұзып, сақтау және жабу үшін кейбір кейіпкерлерді енгізу, Pi-ды қайта жүктеу. Жүктеу соңында файл қате жіберді, бірақ жүйе жұмыс істеуге дайын болды.

Мен қатені қалыпты түрде түзе алдым. Бұл басқаларға пайдалы болуы мүмкін деп үміттенеді. Менің жағдайым бойынша, ол мені жаңа Raspbian-ны өртеуден және бұрынғы жұмысымнан айырылды.

0
қосылды

Мен дәл осындай проблемаға тап болдым. Бақытымызға орай, ssh іске қосылды, әйтпесе ол Raspbian Jessie-де әдепкі бойынша ажыратылған, сондықтан бұл барлық жұмыс істемеуі мүмкін.

Шығу 0 - /etc/rc.local ішіндегі сызық, онда сіз қазіргі уақытта үздіксіз күйде жұмыс істеп тұрған сценарийге қосасыз. Егер Putty-ді және Pi-дің IP-мекен-жайын пайдаланып, Pi-ді қолдана аласыз

sudo nano /etc/rc.local

Scroll down to the bottom of the file and remove the offending program, then sudo reboot

They way to prevent this issue from happening is to add an & (ampersand) to the end of the line to fork the process and run it as a separate process like so

python /home/pi/myscript.py &

as specified in https://www.raspberrypi.org/documentation/linux/usage/rc-local.md

Амперсанд командаға жеке процесте жұмыс істеуге және процесті іске қосуды жалғастыруға мүмкіндік береді.

0
қосылды

Менің жағдайда «Alt» + «F4» тіркесімі жұмыс істеді, ол ағымдағы сеансты тоқтатады және кіру экранын ашады

0
қосылды