Sunucuda Python dosyası çalıştırmak

musti1971

Kilopat
Katılım
12 Ekim 2014
Mesajlar
136
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar merhaba. Benim bir Python dosyam var. Bunu 7/24 Online çalıştıracak şekilde nasıl yapabilirim?
 
Son düzenleyen: Moderatör:
Kullandığınız dağımın servis yöneticisini kullanabilirsiniz. Artık birçok dağıtım için systemd kullanılıyor Ubuntu Server dahil. Şöyle bir script oluşturup service start servisim şeklinde başlatabilirsiniz.

Systemd servis Config dosyaları /etc/systemd/system/ de tutuluyor orada şöyle bir dosya açıp /root/servisim.py dosyasını servis haline getirebilirsiniz.

/etc/systemd/system/servisim.service

Kod:
[Unit]
Description=servisim
Requires=local-fs.target network-online.target
After=local-fs.target network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/python /root/servisim.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Systemd hakkında çok sayıda Türkçe kaynak var. Detayları orada bulabilirsiniz. Log geçmişini vs. de tutuyor. Fakat bunun yerine dağıtım bağımsız ve özelleştirilmesi kontrolü daha kolay bir process Manager da kullanabilirsiniz. PM2 bunlardan biri. Arka planda o da systemd üzerinde çalışıyor fakat kullanımı çok daha kolay. Her uygulama için ayrı ayrı systemd Config dosyası ayarlamanıza gerek kalmıyor. Oluşturduğunuz servisleri de daha derli toplu bir arada görebiliyorsunuz. Sistem'in kendi servisleri ile karışmıyor.

 
Kullandığınız dağımın servis yöneticisini kullanabilirsiniz. Artık birçok dağıtım için systemd kullanılıyor Ubuntu Server dahil. Şöyle bir script oluşturup service start servisim şeklinde başlatabilirsiniz.

Systemd servis Config dosyaları /etc/systemd/system/ de tutuluyor orada şöyle bir dosya açıp /root/servisim.py dosyasını servis haline getirebilirsiniz.

/etc/systemd/system/servisim.service

Kod:
[Unit]
Description=servisim
Requires=local-fs.target network-online.target
After=local-fs.target network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/python /root/servisim.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Systemd hakkında çok sayıda Türkçe kaynak var. Detayları orada bulabilirsiniz. Log geçmişini vs. de tutuyor. Fakat bunun yerine dağıtım bağımsız ve özelleştirilmesi kontrolü daha kolay bir process Manager da kullanabilirsiniz. PM2 bunlardan biri. Arka planda o da systemd üzerinde çalışıyor fakat kullanımı çok daha kolay. Her uygulama için ayrı ayrı systemd Config dosyası ayarlamanıza gerek kalmıyor. Oluşturduğunuz servisleri de daha derli toplu bir arada görebiliyorsunuz. Sistem'in kendi servisleri ile karışmıyor.


Bu konu hakkında biraz cahilim özür dilerim. Kodu pycharm üzerinde çalıştırdığımda istediğim gibi her şey. Tek isteğim bunun 7/24 çalışması ve günlük olarak yeniden başlatılması. Aynı zamanda bu durumun benim pc'nin açık olmasına bağımlı kalmaması. Bu dediğiniz yöntem ile gerçekleştirebilirim dimi ? bir de virtual box ile sanal makine varmış ama o bu duruma uygun mudur ? bir bilginiz var mıydı acaba ?
 
Bu konu hakkında biraz cahilim özür dilerim. Kodu pycharm üzerinde çalıştırdığımda istediğim gibi her şey. Tek isteğim bunun 7/24 çalışması ve günlük olarak yeniden başlatılması. Aynı zamanda bu durumun benim pc'nin açık olmasına bağımlı kalmaması. Bu dediğiniz yöntem ile gerçekleştirebilirim dimi ? bir de virtual box ile sanal makine varmış ama o bu duruma uygun mudur ? bir bilginiz var mıydı acaba ?
Sunucuda çalıştıracaksınız sandım. Siz kendi Windows makinenizde mi sürekli çalıştırmak istiyorsunuz? Linux için servis oluşturmayı anlatmaya çalışmıştım ben o şekilde anladığım için. Windows için daha farklı tabi ki. Yazdıklarım Linux içindi.

Windowsta sürekli çalıştırmak için Windows Hizmeti oluşturmanız gerekiyor. Zamanlandırılmış görevler ile de belli aralıkla bu servisi yeniden başlatabilirsiniz.

Windows'ya kolayca servis oluşturmak için şöyle bir şey var:
 
Vallahi hiç bilmediğim için sunucu da olur Windows'ta da siz hangisini tavsiye ederseniz. Windows da çalışırsa eğer PC'yi kapattığımda çalışmayı durduracak sanırım. Bundan dolayı sunucuda çalıştırmak daha mantıklı galiba. Sunucu da çalıştırmak için ne önerirsiniz? Aws - Azure tarzı programlarımı kullanmam gerekiyor?
Tek isteğim benim bilgisayar kapandığında da çalışacak bir şekilde 7/24 çalışan, günlük tekrar Python'u başlatan bir sistem.
 
Son düzenleme:
Sunucuda çalıştırmak için sunucuda Python kurulu olması gerekir. Kendi bilgisayarınızdan yayın yapmak istiyorsanız, bilgisayarınızda Apache Server kurulu olması gerekir. Bilgisayar kapanınca tüm işlemler her zaman durur. Uyku moduna alsanız dahi sunucu çalışmaz.
 
Ön Edit: Şimdi Heroku'ya tekrar baktım. Onaylı hesaplarda aylık 1000 saat bedava arkaplan hizmeti çaılştırmaya izin veriyor. Eğer çok yüklü bir işlem gücü gerektirecek bir şey değil ise sizin için en uygunu bu gibi duruyor.

Sürekli çalıştırmak istiyorsanız sunucu kiralamak mantıklı. Ya da Heroku benzeri sunucu ile uğraşmadan çalıştırabileceğiniz servisler de var ama bunlar da ücretli diye biliyorum.

Herhangi bir sunucu firmasında ubuntu server 20 sunucu açabilirsiniz. Vultr, DigitalOcean, Linode, Scaleway veya Amazon LightSail'e bakabilirsiniz. Google ve Microsoft tarafında biraz daha pahalıdır büyük ihtimalle. Diğer saydığımız firmalar da son derece kaliteli firmalar. 3-5$'dan aşağı fiyat bulmanız zor ama.

Google cloud ve Amazon Web Services'in geçici süreliğine ücretsiz abonelikleri de var

Ubuntu Server'a Python kurmak çok çok kolay. Bundan sonra bir de pm2 yüklemeniz gerekiyor scriptin sürekli çalışması, sunucuyu yeniden başlatılırsa otomatik olarak yeniden başlaması için.

Sürekli çalıştırmak istediğiniz script yüksek işlem gücü gerektiren bir şey mi? Belki Heroku'ya da uyarlanabilir. Böylece masraf çıkmaz :D . Heroku farklı dillerdeki uygulamaları hiç sunucu falan uğraşmadan sunucu tarafında çalıştırmanıza izin veriyor. Python da destekliyor fakat normalde sadece web için.
 
Son düzenleme:

Geri
Yukarı