π₯ ΠΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ Python: ΠΏΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
#!/usr/bin/env python
3. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Python.
4. Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΠΈ Π²ΡΠΉΠ΄ΠΈΡΠ΅ ΠΈΠ· ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
5. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ.
6. ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ Python.
7. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod:
chmod +x script.py
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ "script.py" Π½Π° ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
8. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ Python, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
./script.py
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ Python Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ./script.py.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° Python
ΠΠ²ΡΠΎΠ·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊΠ° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Python.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° .bashrc ΠΈΠ»ΠΈ .bash_profile
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Linux ΠΈΠ»ΠΈ macOS, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° Python Π² ΡΠ°ΠΉΠ» .bashrc ΠΈΠ»ΠΈ .bash_profile. ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ².
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Python, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
1. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π».
2. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ nano ~/.bashrc (ΠΈΠ»ΠΈ nano ~/.bash_profile Π΄Π»Ρ macOS) Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° .bashrc ΠΈΠ»ΠΈ .bash_profile Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Nano.
3. ΠΡΠΎΠΊΡΡΡΠΈΡΠ΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ:
python3 /ΠΏΡΡΡ_ΠΊ_Π²Π°ΡΠ΅ΠΌΡ_ΡΠΊΡΠΈΠΏΡΡ.py
4. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Ctrl+X Π΄Π»Ρ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Nano ΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ Python Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Ρ
ΠΡΡΠ³ΠΈΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Ρ, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ cron Π² Linux ΠΈΠ»ΠΈ Task Scheduler Π² Windows. ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π·Π°Π΄Π°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ cron (Π΄Π»Ρ Linux):
1. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π».
2. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ crontab -e Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° cron Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.
3. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ°ΠΉΠ» cron:
\* \* \* \* \* python3 /ΠΏΡΡΡ_ΠΊ_Π²Π°ΡΠ΅ΠΌΡ_ΡΠΊΡΠΈΠΏΡΡ.py
4. Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ Python Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ.
3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΡΠΆΠ±Ρ systemd (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Linux)
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Linux ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ° Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ systemd.
Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠΌ ΡΠ°Π³Π°ΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΡΠΆΠ±Ρ systemd Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Python:
1. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .service, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ myscript.service.
2. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
[Unit]
Description=My Python Script
[Service]
ExecStart=/usr/bin/python3 /ΠΏΡΡΡ_ΠΊ_Π²Π°ΡΠ΅ΠΌΡ_ΡΠΊΡΠΈΠΏΡΡ.py
[Install]
WantedBy=multi-user.target
3. Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² /etc/systemd/system/:
sudo mv myscript.service /etc/systemd/system/
4. ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ Π² Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊ:
sudo systemctl daemon-reload
sudo systemctl enable myscript.service
5. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ:
sudo systemctl start myscript.service
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΡΠΊΡΠΈΠΏΡ Python Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ systemctl.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊΠ° Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² Python. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π£Π΄Π°ΡΠΈ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Python!