Haii gaess, balik lagi bareng saya di blog tercinta ini :'D
Jika
di post sebelumnya kita menggunakan shell scripting untuk mendownload
file dan langsung mengubah namanya, kali ini kita akan coba membuat
sebuah folder hanya bisa berisi satu ekstesi file. Yap benar sekali,
satu ekstensi file dalam sebuah folder.
Jadi, dalam sebuah folder nantinya akan hanya berisi satu ekstensi file dan file dengan ekstensi lainnya akan di pindahkan ke folder yang lain. Dalam proses ini, kita menggunakan daemon. Pengertian daemon sendiri adalah service yang berjalan sendiri secara periodik/realtime dan berjalan dibelakang layar. Jadi program ini nantinya akan berjalan di background atau biasa dibilang background process dan akan berjalan dengan sendirinya.
Yasudah langsung saja, saya akan kasih source code untuk program ini. Ini dia gaess...
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <string.h>
#include <dirent.h>
int main(void){
pid_t pid, sid;
pid = fork();
if (pid < 0){
exit(EXIT_FAILURE);
}
if (pid > 0){
exit(EXIT_SUCCESS);
}
umask(0);
sid = setsid();
if (sid < 0){
exit(EXIT_FAILURE);
}
if ((chdir("/")) < 0){
printf("test");
exit(EXIT_FAILURE);
}
close(STDIN_FILENO);
close(STDERR_FILENO);
while (1)
{
sleep(2);
DIR *dir;
char src[]="home/deni/Documents/doc";
char dest[]="home/deni/Documents/nondoc";
struct dirent *ent;
if ((dir = opendir ("home/deni/Documents/doc")) != NULL)
{
while ((ent = readdir (dir)) != NULL)
{
int len_file;
len_file=strlen(ent->d_name);
if(len_file>2)
{
char ext[3];
ext[0]=ent->d_name[len_file-4];
ext[1]=ent->d_name[len_file-3];
ext[2]=ent->d_name[len_file-2];
ext[3]=ent->d_name[len_file-1];
if(strcmp(ext,".doc")==0)
{
printf("Document Found\n");
}
else
{
char buf_src[100];
snprintf(buf_src,100,"%s/%s",src,ent->d_name);
char buf_dest[100];
snprintf(buf_dest,100,"%s/%s",dest,ent->d_name);
rename(buf_src,buf_dest);
}
}
}
closedir (dir);
perror ("");
}
}
exit(EXIT_SUCCESS);
}
Nah, setelah itu kita save source code tadi dengan [namafile].c. Di program ini, kita akan membuat folder dengan nama "doc" hanya akan berisi file dengan ekstensi .doc, dan selain itu akan di pindah ke dalam folder dengan nama "nondoc".
Oke, sebelum kita jalankan program nya kita harus compile dahulu [namafile].c tadi dengan cara gcc [namafile].c -o [namaprogram].o seperti gambar dibawah ini.
Setelah itu kita run [namaprogram].o nya dengan cara ./[namaprogram].o seperti ini.
Nah, setelah itu program akan berjalan. Kita akan coba mengecek di dalam folder "doc" dan "nondoc" sebelum dan sesudah program di jalankan.
Sebelum program dijalankan.
Setelah program dijalankan.
Nah, program sudah berjalan dengan baik. Selanjutnya kita bisa menghentikannya dengan cara membuka terminal baru lalu ketik pkill [namaprogram].o seperti ini.
Oke, cukup sekian pembahasan kita kali ini tentang salah satu contoh dari daemon. Semoga bermanfaat dan sampai ketemu di postingan dan pembahasan berikutnya yaaa..... :)
Wassalamualaikum wr.wb.