Saya perlu menguji aspek perangkat lunak saya yang hanya terjadi pada waktu-waktu tertentu dalam sehari. Daripada menunggu sepanjang hari (dan sampai di sini jam 2:00), saya ingin mengubah waktu.
Tapi saya lebih suka tidak mengubahnya secara permanen .
Saya tahu saya bisa mengubah waktu menggunakan date
, dan kemudian mengubahnya kembali, tetapi apakah ada cara yang lebih baik?
OS yang dimaksud adalah RHEL6 yang berjalan di VM.
Jawaban:
Ada perpustakaan bernama
libfaketime
(juga di GitHub ) yang memungkinkan Anda membuat sistem melaporkan waktu tertentu ke aplikasi Anda. Anda dapat meminta sistem melaporkan waktu tetap selama durasi pelaksanaan program, atau memulai jam pada waktu tertentu (misalnya, 01:59:30). Pada dasarnya, Anda menghubungkan pustaka faketime ke dalam gambar di memori program Anda melalui pemuat perpustakaan, dan ia menangkap dan menangani dengan caranya sendiri semua panggilan sistem yang berhubungan dengan waktu sistem. Itu tidak benar-benar mengubah waktu sistem, tetapi itu mengubah waktu yang dilaporkan ke aplikasi spesifik Anda tanpa mempengaruhi hal lain yang sedang berjalan, yang mungkin adalah apa yang Anda cari (jika tidak, saya tidak melihat alasan untuk tidak hanya mengubah global waktu sistem).Ada sejumlah varian yang mungkin tentang cara menggunakannya, tetapi sepertinya Mengubah waktu proses berpikir dengan libfaketime memiliki daftar yang cukup menyeluruh bersama dengan kode sampel untuk mencobanya. Google juga harus dapat menggali beberapa contoh mengingat Anda tahu apa yang harus dicari.
Tampaknya tidak tersedia dipaket melalui repositori RHEL, tetapi misalnya Debian menyediakannya dengan nama paket
faketime
. Itu juga terlihat lurus ke depan untuk membangun dari kode sumber (tampaknya bahkan tidak memerlukanconfigure
langkah atau semacamnya).sumber
Apa yang akan saya lakukan adalah menginstal
ntp
layanan untuk menyinkronkan waktu dengan server jarak jauh. Kemudian, hentikan layanan, ubah tanggal secara manual, mainkan dan mulai ulang layanan:sumber