30-01-2020, Saat: 13:44
Bu yazı biraz makale değil de ipucu gibi olabilir. Kendi tecrübemi anlatıyorum. İhtiyaç duyabilecek kişilerin kolayca işini çözmesi adına bu yazıyı yazıyorum.
İhtiyaç oldu ve bir TCP Socket uygulaması istenildi bende bu uygulamayı iki(Windows ve Linux) platformda da çalışacak şekilde olması için FMX ile konsol uygulaması oluşturdum.
Geliştirme süreçleri bitip projenin sonuna gelindi. Windows ve Linux ortamlarında uygulama testlerini yapıldı ve sorun yok.
Buradan sonra anlatacaklarım Linux ortamı için geçerli.
Linux için projeye
FMX ile hazırlanmış Konsol uygulamasını Linux(Ubuntu) içinde konsol gibi değilde hizmet gibi arka planda çalıştırabilir miyiz? Sorusuna cevap almak için yazıyorum.
Uygulama konsol uygulaması olduğu için bir şekilde bu uygulamanın başlatılması gerekiyor.
Bu çalıştırma işini sistemin ilk açılışında Windows' da olduğu Linux sistem açılışına ekleyerek aşabilirim. Fakat çeşitli sebeplerle bu uygulama kapanmış olabilir.
Bu durumu da "crontab"(Linux ortamında zamanlanmış görev çalıştırma mekanizması) ile aşabilirim. Fakat zamanlanmış görev ile herhangi bir kontrol eklemeden çalıştırma işlemini yaparsam uygulama birden fazla kopyası ile açılmış olur.
Bu durumu kontrollü bir şekilde yapmalıyız. Uygulama kapalı yani çalışmıyorsa uygulamayı aç, eğer uygulama açıksa tekrardan açma ve işlem yapma bir bash(kabuk) script ile aşabiliriz. Yine zamanlanmış görevlere çalıştırılacak olan bash script gösterilir ve belirli periyotlarla çalıştırılması sağlanabilir.
komut satırında bu komut ile zamanlanmış görevler penceresini açıyoruz.
Bu script dosyasının içeriği de aşağıdaki gibi olacak
Ayrıca kod içindeki <br> yazan ibareler olmayacak ben eklemedim ama bir şekilde buraya geliyor.
İhtiyaç oldu ve bir TCP Socket uygulaması istenildi bende bu uygulamayı iki(Windows ve Linux) platformda da çalışacak şekilde olması için FMX ile konsol uygulaması oluşturdum.
Geliştirme süreçleri bitip projenin sonuna gelindi. Windows ve Linux ortamlarında uygulama testlerini yapıldı ve sorun yok.
Buradan sonra anlatacaklarım Linux ortamı için geçerli.
Linux için projeye
{$IFDEF LINUX}Posix.Unistd,{$ENDIF}şekilde bir Unit ekledim. Bunu da ayrıca belirtmek isterim.
FMX ile hazırlanmış Konsol uygulamasını Linux(Ubuntu) içinde konsol gibi değilde hizmet gibi arka planda çalıştırabilir miyiz? Sorusuna cevap almak için yazıyorum.
Uygulama konsol uygulaması olduğu için bir şekilde bu uygulamanın başlatılması gerekiyor.
Bu çalıştırma işini sistemin ilk açılışında Windows' da olduğu Linux sistem açılışına ekleyerek aşabilirim. Fakat çeşitli sebeplerle bu uygulama kapanmış olabilir.
Bu durumu da "crontab"(Linux ortamında zamanlanmış görev çalıştırma mekanizması) ile aşabilirim. Fakat zamanlanmış görev ile herhangi bir kontrol eklemeden çalıştırma işlemini yaparsam uygulama birden fazla kopyası ile açılmış olur.
Bu durumu kontrollü bir şekilde yapmalıyız. Uygulama kapalı yani çalışmıyorsa uygulamayı aç, eğer uygulama açıksa tekrardan açma ve işlem yapma bir bash(kabuk) script ile aşabiliriz. Yine zamanlanmış görevlere çalıştırılacak olan bash script gösterilir ve belirli periyotlarla çalıştırılması sağlanabilir.
komut satırında bu komut ile zamanlanmış görevler penceresini açıyoruz.
crontab -eyukarıdaki komuttan sonra açılan pencerede en alta bu satıra aşağıdaki satırı ekliyoruz. Burada her 1 dakika da bir bu Script çalıştırılsın demiş oluyoruz.
*/1 * * * * /path/to/script_name.sh
Bu script dosyasının içeriği de aşağıdaki gibi olacak
#comment #uygulama adi aşagidaki gibi tirnak arasinda olacak if pgrep -x "uygulamaAdi" > /dev/null then #uygulama zaten calisiyor echo "a" else #calisan uygulama yok /path/to/uygulamaAdi fi
Ayrıca kod içindeki <br> yazan ibareler olmayacak ben eklemedim ama bir şekilde buraya geliyor.
PostgreSQL - Linux - Delphi, Poliüretan