πŸ›‘ Как ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ python скрипт Π² консоли Linux

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Python скрипт Π² консоли Linux, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сочСтаниС клавиш Ctrl + C.


        # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°
        while True:
            # Код скрипта
            pass
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, скрипт Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² бСсконСчном Ρ†ΠΈΠΊΠ»Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + C.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ python скрипт Π² консоли Linux

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Python скрипт Π² консоли Linux β€” это ΠΎΠ΄Π½Π° ΠΈΠ· основных Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° сСрвСрС ΠΈΠ»ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Но ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько способов ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Python скрипт Π² консоли Linux.

1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш "Ctrl + C"

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Python скрипта Π² консоли Linux β€” это Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш "Ctrl + C". Когда Π²Ρ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ эти клавиши, сигнал прСрывания (SIGINT) отправляСтся Π² скрипт, ΠΈ ΠΎΠ½ останавливаСтся. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ практичСски Π²ΠΎ всСх ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ… ΠΈ срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.


        while True:
            # ваши дСйствия
            pass
    

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ этот скрипт, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Ctrl + C" Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sys.exit()

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ скрипт ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ самого ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sys.exit(). Данная функция ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0 Π² качСствС статуса Π²Ρ‹Ρ…ΠΎΠ΄Π°. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² качСствС статуса Π²Ρ‹Ρ…ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ процСссС выполнСния.


        import sys

        while True:
            # ваши дСйствия
            if some_condition:
                sys.exit(0)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠΎΠ³Π΄Π° выполняСтся условиС some_condition, скрипт Π±ΡƒΠ΄Π΅Ρ‚ остановлСн.

3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os._exit()

Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта Π±Π΅Π· выполнСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os._exit(). Π­Ρ‚Π° функция Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ процСсс Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² finally ΠΈΠ»ΠΈ except Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½.


        import os

        while True:
            # ваши дСйствия
            if some_critical_condition:
                os._exit(0)
    

Π—Π΄Π΅ΡΡŒ some_critical_condition прСдставляСт критичСскоС условиС, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ скрипт Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ остановлСн.

4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сигналы

Python Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒ signal, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сигналами ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сигналы для прСрывания выполнСния скрипта. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ использованиС сигналов для остановки скрипта:


        import signal
        import time

        def signal_handler(signal, frame):
            print('Π’Ρ‹ ΠΏΡ€Π΅Ρ€Π²Π°Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта.')
            exit(0)

        signal.signal(signal.SIGINT, signal_handler)

        while True:
            # ваши дСйствия
            time.sleep(1)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ опрСдСляСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ сигнала с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ signal_handler. Когда сигнал прСрывания (SIGINT) ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ выполняСтся, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ сообщСниС ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ скрипт.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Python скрипта Π² консоли Linux. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш "Ctrl + C", Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sys.exit(), Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os._exit() ΠΈΠ»ΠΈ сигналы для выполнСния этой Π·Π°Π΄Π°Ρ‡ΠΈ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для вашСй ситуации ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. УспСшного программирования!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автозапуск Python скриптов ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт (python, bash) ΠΈΠ· любой ΠΏΠ°ΠΏΠΊΠΈ Π² Linux. Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ скрипт Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Linux.

Как ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² консольном Linux? Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с процСссами Π² Linux - jobs, fg, bg

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

🐍 Как Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Python ΠΈ ΡΡ‚Π°Ρ‚ΡŒ Π³ΡƒΡ€Ρƒ программирования? πŸš€

πŸ”‘ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² Python? ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ способы ΠΈ совСты

Π§Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² .gitignore для Python?

πŸ›‘ Как ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ python скрипт Π² консоли Linux

βš™οΈ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ bin Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? Π£Π·Π½Π°ΠΉΡ‚Π΅ объяснСниС ΠΈ использованиС bin() Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

πŸ”Ž Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ числа Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? ПолноС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…!

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ISSpace Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹