Langsung ke konten utama

[TUTORIAL] Ubah Foldermu yang Tidak Rapi Menjadi Rapi

Masih ingat tentang postingan saya yang sebelumnya, tentang Bash Script? Ya mungkin kalok lupa bisa langsung saja dilihat sekarang. Sesuai dengan judul postingan ini, kita akan membuat sebuah folder menjadi "rapi", tetapi jangan terburu-buru dulu. Sebelumnya kita harus mengerti apakah itu daemon (bukan doraemon).

Apakah itu daemon? Mungkin dari terjemahannya sendiri kita bisa langsung mengerti.









Perhatikan yang "Terjemahan dari daemon". Sudah melihat sendiri kan terjemahan dari daemon, itu emang benar. Lalu apa hubungannya arti dari terjemahannya itu ke dalam linux? Hubungannya, cara kerja daemon di linux tidak dapat terlihat, atau bisa juga kita sebut cara kerjanya itu berada di background. Dia (daemon) bekerja di belakang layar, jadi tidak dimunculkan ke terminal ataupun juga ke GUI. Tetapi kita tetap dapat mengontrol kerja daemon tersebut, misalnya saja mematikan atau menyalakannya.

Lalu bagaimana cara mmebuat sebuah daemon? Cara untuk membuat daemon sendiri terdiri dari 6 langkah.
a) Fork Parent Proccess dan Penghentian Parent Process
Langkah pertama dari pembuatan daemon adalah dengan menspawn proses menjadi induk dan anak dengan melakukan forking, kemudian membunuh proses induk. Proses induk yang mati akan menyebabakan sistem operasi mengira bahwa proses telah selesai sehingga akan kembali ke terminal user. Dari langkah tersebut kita akan mendaptkan sebuah proses anak yang melanjutkan program setelah induknya mati, sehingga kita mendapatkan sebuah proses yang hampir bekerja pada backround.
pid_t pid
pid = fork();
if (pid < 0)
{
exit(EXIT_FAILURE);
}
if (pid >0)
{
exit(EXIT_SUCCESS);
}

b) Mengubah Mode File Menggunakan UMASK(0);
Daemon biasanya memproteksi setiap file yang dibuat, dengan alasan keamanan. Fungsi umask() akan mencegah file-file previleges yang tidak aman dalam setiap pembuatan file.
umask(0);
//mendapat akses penuh dari file yang dibuat daemon
c) Membuat Unique Session ID (SID)
Daemon harus bekerja secara independen daripada proses-proses lain, termasuk juga proses yang menjalankannya. Langkah bisa dilakukan dengan memanggil fungsi setsid(), sehingga proses akan mendapatkan sebuah session ID yang baru.
sid = setsid();
if (sid < 0)
{
exit(EXIT_FAILURE);
d) Mengubah Directori Kerja
Directory kerja daemon haruslah sebuah directory yang selalu hidup. Bisa saja pada saat starting working directorynya pada saat itu berada pada user home. Karena daemon bekerja sampai sistem reboot, maka file sistem user directorynya takkan pernah bisa di unmount.
if ((chdir("/home/fourirakbar/Documents")) < 0)
{
exit(EXIT_FAILURE)
}
e) Menutup File Descriptor Standar
Untuk mencegah terjadinya intervensi dari user serta untuk pengamanan, maka standar I/O descriptor dan descriptor yang diwarisi dari proses induk harus ditutup. 
close (STDIN_FILENO); //stdin = standar input
close (STDOUT_FILENO); //stdout = standar output
close (STDERR_FILENO); //stderr = standar error

f)Membuat Loop Utama
Membuat loop utama atau bisa juga disebut dengan inti kerja dari daemon itu sendiri.
while (1)
{
sleep(5);
}
exit(EXIT_SUCCESS);

Begitulah 6 langkah pembuatan daemon, langsung saja kita coba membuat sebuah daemon yang gunanya nanti untuk membuat folder kita menjadi rapi.






Pasti pertama kali langsung penasaran, gimana hasilnya jika dicoba. Pertama tama coba masukkan sebuah file selain ekstensi .doc ke dalam /home/fourirakbar/Documents/modul2/doc . Atau juga bisa langsung masuk ke dalam folder doc itu, dan ketikkan touch a, maksudnya adalah untuk membuat file bernama "a" tetapi kita tidak mengeditnya, juga tidak mempunyai ekstensi. Jangan lupa juga untuk membuat sebuah folder lagi yang berfungsi untuk menampung file-file yang berekstensi selain .doc. Misalkan saja disini saya membuat folder tersebut dengan nama folder_lain.

Jika sudah, buka terminal dan ketikkan perintah gcc [nama_file].c -o [nama_file2].o . Lalu jalankan daemonnya dengan mgentikkan ./[nama_file2].o

Coba cek folder doc tadi, dan lihat jika hanya file yang berekstensi .doc tidak terpindah, dan file-file yang mempunya ekstensi selain .doc akan langsung terpindah ke folder lain.

Lalu bagaimana jika saya tetap memasukkan file yang tidak mempunyai ekstensi .doc ke dalam folder doc tersebut?
Ketika ada file lain yang akan masuk ke dalam folder doc tersebut, file lain itu akan langsung terpindahkan ke folder folder_lain.

Lalu bagaimana ketika di dalam folder doc tersebut ada folder doc2, dan isi dari folder doc2 tersebut adalah berbagai file yang mempunya ekstensi .doc
Ketika ada sebuah folder, dan di dalamnya ada folder lagi, lalu isinya adalah file yang mempunya ekstensi .doc, folder tersebut (misalnya folder doc2) tidak akan terpindah.

Saya ingin mengisi folder doc dengan file yang mempunya ekstensi lain, bagaimana caranya?
Ketikkan pkill [nama_file2].o di terminal, maka daemon yang tadi berjalan akan mati. Dan kita bisa memasukkan file yang tidak berekstensi .doc ke dalam folder doc lagi


Komentar

Postingan populer dari blog ini

Membuat KAK Perusahaan Ekspedisi

Kerangka Acuan Kerja Pengembangan Sistem Informasi Pengiriman Barang dan Tracking Armada GO - Logistik A. Latar Belakang Proses pengiriman barang oleh perusahaan ekspedisi merupkana proses bisnis yang paling penting saat ini. Hal ini sangat diperlukan karena dapat membantu masyarakat luas untuk menunjang bisnis atau kegiatan mereka. Maka dari itu banyak sekali pelaku bisnis yang menawarkan jasa tersebut.  Karena banyak sekali pelaku bisnis yang menawarkan jasa tersebut, perusahaan ekspedisi ini berusaha untuk memberikan fasilitas yang terbaik untuk pelanggannya, yaitu berupa aplikasi tracking lokasi arma pengiriman barang. Dengan adanya aplikasi ini, perusahaan dan pelanggan dapat memantau langsung proses ekspedisi tersebut. B. Maksud dan Tujuan Maksud dan tujuan dari aplikasi ini adalah untuk mempermudah pelanggan dalam mengetahui lokasi armada yang sedang melakukan proses ekspedisi tersebut, dan bertujuan untuk memberikan rasa percaya dan juga rasa aman lebih ...

MPPL - Pertemuan 1

MANAJEMEN PROYEK PERANGKAT LUNAK Perangkat Lunak (Software) Perangkat lunak atau software merupakan aplikasi yang terdiri dari sekumpulan kode atau instruksi, yang berisi data dan dokumentasi atau petunjuk manual untuk menyelesaikan suatu permasalahan. Proyek Proyek adalah suatu kegiatan yangn mempunyai batasan waktu (bersifat sementara), biaya dan resource untuk mencapai sebuah tujuan. Manajemen Manajemen adalah kegiatan mengatur, mengelola berupa perencanaan, pelaksanaan dan controlling. Dari tiga pengertian diatas maka dapat disimpulkan bahwa Manajemen Proyek Perangkat Lunak (MPPL) adalah aktivitas untuk perencanaan, pelaksanaan sampai pada tahap controlling terhadap pembuatan suatu perangkat lunak dengan menggunakan resource yang ada dalam jangka waktu tertentu untuk memenuhi kebutuhan guna menyelesaikan suatu permasalahan. Dalam MPPL, terdapat stakholder yang mempunyai peran masing-masing dalam manajemen proyek pernagkat lunak, yaitu: Proyek Merupakan suatu kegia...

[PWEB] Grocery CRUD

Untuk memudahkan user dalam membuat CRUD (Create Read Update Delete), dapat menggunakan grocery crud 1) Langkah pertama yaitu buka localhost/phpmyadmin dan buatlah sebuah database dan beserta tabelnya. Dibawah ini adalah contohnya 2) Lalu buka file grocery_crud pada text editor Anda (disini saya menggunakan Sublime). Buka di /application/config/database.php. Lalu ketik seperti dibawah ini <?php defined('BASEPATH') OR exit('No direct script access allowed'); /* | ------------------------------------------------------------------- | DATABASE CONNECTIVITY SETTINGS | ------------------------------------------------------------------- | This file will contain the settings needed to access your database. | | For complete instructions please consult the 'Database Connection' | page of the User Guide. | | ------------------------------------------------------------------- | EXPLANATION OF VARIABLES | ---------------...