Jalankan perintah panjang, lalu biarkan Mac Anda tidur setelah selesai

Henry AGI
6 menit bacaJun 2026
Jalankan perintah panjang, lalu biarkan Mac Anda tidur setelah selesai

Untuk menjalankan perintah lalu membiarkan Mac Anda tidur begitu perintah itu selesai, alat bawaannya adalah caffeinate: beri perintah Anda sebagai argumen (caffeinate -i your-command) dan macOS menahan Mac tetap aktif persis selama proses itu berjalan, lalu melepaskannya secara otomatis — tanpa langkah nyala/mati terpisah. Ini benar-benar berguna dan tidak berbayar. Yang tidak tercakup adalah semua hal setelah perintah selesai: caffeinate tidak memberi tahu Anda apakah pekerjaan itu berhasil, tidak memantau baterai Anda selama berjalan, dan tidak mengirim notifikasi saat selesai. Run & Watch a Command milik LidRun (beserta kembarannya di CLI, lidrun --) melakukan pengikatan siklus hidup yang sama, lalu menambahkan exit code, durasi, notifikasi, dan pengaman (safety governor) yang benar-benar menghentikan pekerjaan itu jika Mac sebaiknya tidak terus menjalankannya.

Masalah dengan keep-awake manual

Ritual yang biasa dilakukan adalah dua langkah yang harus Anda ingat dalam urutan yang benar: nyalakan keep-awake, mulai pekerjaan, lalu nanti — semoga saja — matikan keep-awake setelah selesai. Langkah kedua inilah yang sering terlewat.

LidRun
Timeline comparing manual keep-awake toggling, which leaves the Mac awake after a job ends, against LidRun's command-length keep-awake that releases the instant the job exits
Keep-awake manual meninggalkan celah antara pekerjaan selesai dan toggle dimatikan. Run & Watch menutup celah itu secara otomatis.

Lupa mematikannya, dan Mac tetap aktif selama berjam-jam setelah pekerjaan yang hanya butuh empat puluh menit itu selesai — menguras baterai, atau sekadar tidak beristirahat di meja. Matikan terlalu cepat, dan Anda memotong pekerjaan itu di tengah jalan. Keduanya bukan yang sebenarnya Anda inginkan, yang sebenarnya lebih sederhana daripada yang bisa dilakukan kontrol manual: biarkan Mac tetap aktif selama satu perintah ini berjalan, lalu berhenti. Ikat status keep-awake pada umur pekerjaan itu sendiri, bukan pada sakelar yang dinyalakan-matikan dengan tangan.

Cara bawaan yang gratis: caffeinate

Sebelum mencari aplikasi apa pun, ada baiknya diketahui bahwa macOS sudah punya trik intinya secara gratis. caffeinate sudah terpasang di setiap Mac, dan menurut man page-nya sendiri: "Jika sebuah utility ditentukan, caffeinate membuat assertion atas nama utility tersebut, dan assertion itu akan bertahan selama utility tersebut berjalan." Contoh bawaannya sendiri persis pola ini: caffeinate -i make men-fork make, menahan assertion idle-sleep selama proses itu berjalan, lalu melepaskannya saat proses selesai. Ganti dengan pekerjaan Anda sendiri — caffeinate -i ./run-migrations.sh atau caffeinate -i npm test — dan Anda mendapatkan keep-awake sepanjang durasi perintah yang sama seperti yang ditawarkan LidRun, tanpa instalasi apa pun.

Flag-nya penting: -i mencegah idle sleep (kasus yang paling umum), -d juga membuat layar tetap menyala, -s mencegah system sleep sepenuhnya tapi hanya berfungsi saat terhubung ke daya AC, dan -m mencegah disk berhenti berputar. Tanpa flag sama sekali, caffeinate your-command polos tetap secara default mencegah idle sleep. Ini alat yang benar-benar solid untuk pekerjaan foreground yang sedang Anda pantau.

Yang tidak disentuh caffeinate adalah lid yang tertutup. Assertion-nya menghentikan idle sleep, bukan forced sleep yang dipicu macOS begitu Anda menutup lid secara fisik pada Mac tanpa monitor eksternal terpasang. Solusi gratis tradisional untuk itu adalah setup clamshell klasik — monitor eksternal plus keyboard/mouse eksternal, lid tertutup, Mac tetap berjalan karena macOS memperlakukannya seolah-olah ter-dock. Cara lain, yang dipanggil di balik layar oleh Closed-Lid mode milik LidRun sendiri, adalah sudo pmset disablesleep 1 — perintah yang tidak terdokumentasi resmi tapi sudah dikenal luas, sebuah flag system-wide yang memblokir sleep sepenuhnya sampai sesuatu mengembalikannya ke 0.

Panduan terkaitLidRun CLI: menjaga Mac tetap menyala dari terminal

Di titik mana cara gratis ini tidak lagi cukup

caffeinate tidak memberi tahu apa pun saat pekerjaan selesai. Tidak ada exit code yang dicetak, tidak ada durasi, tidak ada notifikasi — Anda kembali memelototi tab terminal, atau menulis wrapper sendiri seperti caffeinate -i ./job.sh; echo "exit $?" dan harus ingat untuk mengeceknya nanti. Untuk migrasi empat puluh menit, itu cuma gangguan kecil; untuk export semalaman yang Anda mulai sebelum tidur, artinya Anda bangun dan disambut jendela terminal yang harus di-scroll, bukan jawaban yang jelas.

LidRun
Comparison table of caffeinate, pmset disablesleep, third-party toggle apps, and LidRun's Run & Watch a Command across exit-code reporting and battery/thermal auto-stop
caffeinate sudah gratis mengikat dirinya ke masa hidup sebuah command — LidRun menambahkan report serta safety auto-stop yang tidak dimiliki caffeinate.

caffeinate juga tidak tahu apa-apa soal baterai atau kondisi termal Mac Anda. Ia menahan assertion secara buta selama proses berjalan — yang memang persis itu yang Anda minta, tapi artinya pekerjaan caffeinate -i yang dibiarkan berjalan tanpa pengawasan di atas baterai semalaman tidak punya siapa pun yang memantau ambang baterai rendah yang sudah Anda atur. pmset disablesleep bahkan lebih blak-blakan lagi: butuh sudo, sifatnya system-wide (memblokir sleep untuk semuanya, bukan hanya pekerjaan Anda), dan tetap ter-set ke 1 sampai sesuatu secara eksplisit mengembalikannya — lewatkan langkah itu dan Mac tidak akan tidur untuk apa pun sampai Anda ingat untuk mematikannya.

Aplikasi toggle pihak ketiga — Amphetamine, KeepingYouAwake, Lungo, Caffeine yang asli — layak disebut secara adil, bukan diremehkan begitu saja. Amphetamine khususnya punya sistem trigger yang kaya: bisa aktif saat aplikasi dibuka, sesuai jadwal, atau berdasarkan level baterai, yang jauh lebih bisa dikonfigurasi dibanding apa pun yang ditawarkan LidRun di sini. KeepingYouAwake dan Lungo sengaja dibuat sebagai toggle menu-bar yang minimal; Caffeine adalah yang klasik dan sekali klik. Yang tidak dilakukan satu pun dari mereka adalah memantau exit code dari perintah tertentu — mereka mengelola status tetap-aktif yang persisten, yang Anda nyalakan dan matikan sendiri, atau berdasarkan trigger yang tidak ada hubungannya dengan apakah pekerjaan Anda memang masih berjalan. Itu masalah lupa-mematikan yang sama seperti di bagian pertama, hanya dengan ikon menu bar yang lebih rapi.

Serahkan perintahnya ke LidRun

Run & Watch a Command adalah fitur Pro yang membalik model caffeinate: alih-alih Anda yang mengelola status keep-awake, Anda menyerahkan perintahnya ke LidRun dan LidRun yang mengelola statusnya untuk Anda. Di balik layar, ia menjalankan perintah Anda melalui login shell yang sama dengan yang dipakai Terminal Anda (/bin/zsh -l -c), jadi tool-tool PATH — Homebrew, pyenv, nvm, apa pun yang perlu di-resolve oleh claude atau ollama — bekerja sama persis seperti kalau Anda mengetik perintahnya sendiri. Ia menahan keep-awake selama seluruh masa hidup perintah itu dan melepaskannya begitu perintah selesai, janji yang sama yang dibuat LidRun di seluruh bagian aplikasi: perintah sedang berjalan → tetap aktif, perintah selesai atau tidak aman → lepaskan.

Selama berjalan, LidRun menangkap rolling tail dari output-nya — 200 baris terakhir, terlihat langsung di jendela menu bar — jadi Anda tidak perlu memelototi terminal polos sambil berharap masih hidup. Ini tampilan live, bukan file log yang tersimpan, jadi kalau Anda butuh transkrip lengkap untuk nanti, arahkan (redirect) output perintah itu sendiri ke sebuah file seperti biasa. Kalau Anda mengetik interpreter polos tanpa ada yang benar-benar dijalankan (python3 tanpa skrip), runner-nya akan menandainya, bukan berpura-pura bahwa exit nol detik itu pekerjaan sungguhan.

Saat selesai, Anda mendapat bagian yang paling penting: exit code dan berapa lama prosesnya, diformat dengan sederhana (12m 34s, 1h 23m). Anda selalu mendapat notifikasi lokal; kalau Anda sudah mengatur push provider — ntfy.sh (gratis) atau Pushover — notifikasi itu juga sampai ke ponsel Anda, dan di Pro Anda bisa mengirimkannya lebih jauh lagi ke Telegram, Discord, Slack, atau URL webhook generik. Kalau Anda memulai sesi saat baterai, LidRun memberi tahu ambang auto-stop yang sudah Anda atur di awal (20% secara default), bukan membiarkan Anda baru tahu belakangan.

Ini juga perbedaan keamanan yang jujur dibandingkan sekadar menahan assertion caffeinate: kalau baterai Anda turun melewati ambang itu, atau Mac mengalami tekanan termal kritis, LidRun tidak sekadar diam-diam melepaskan assertion-nya lalu berharap yang terbaik — ia mengirim sinyal terminate sungguhan ke perintah yang sedang berjalan, sama seperti mengklik Stop. Itu interupsi nyata, bukan sekadar saran halus, jadi ini lebih protektif dibanding wake lock yang buta, meskipun pekerjaan yang dihentikan beberapa menit sebelum sebenarnya akan selesai sendiri tetaplah sebuah interupsi, bukan jaminan bahwa proses itu akan tuntas. Dan seperti caffeinate, ini menjaga Mac tetap aktif melewati idle sleep, bukan melewati lid yang tertutup secara fisik — padukan dengan Closed-Lid mode (atau monitor eksternal) kalau lid-nya akan ditutup.

Hal yang sama dari command line

Kalau Anda lebih banyak hidup di terminal, lidrun -- <command> [args...] melakukan pengikatan siklus hidup yang sama, dan tidak seperti Run & Watch, ini gratis dan sepenuhnya mandiri — tetap berfungsi bahkan kalau aplikasi LidRun tidak sedang berjalan, karena ia menahan assertion IOKit-nya sendiri yang berumur pendek, khusus untuk proses yang dibungkus, lalu melepaskannya saat proses itu selesai. lidrun -- ./run-migrations.sh atau lidrun -- npm test terbaca persis seperti mengetik perintahnya langsung, karena di balik layar memang begitu — login shell yang sama, resolusi PATH yang sama. Ctrl-C membatalkannya seperti pekerjaan foreground pada umumnya.

LidRun
Terminal screenshot of lidrun -- npm test showing normal command output and the exit code and duration reported when it finishes
lidrun -- npm test — Mac tetap awake persis selama ini, lalu terminal menunjukkan bagaimana sesi itu berakhir.

Karena sepenuhnya mandiri, jujur saja perlu dikatakan dengan jelas: lidrun -- tidak mengecek persentase baterai atau kondisi termal Anda sendiri — pengaman itu ada di fitur GUI Run & Watch, terikat pada pengaturan keamanan reguler aplikasi. Saat memakai baterai, untuk pekerjaan yang berjam-jam, itu penting diketahui sebelum Anda menjalankannya di background lalu pergi; daya listrik dari colokan tetap pilihan yang lebih aman untuk kedua jalur ini.

Ada satu gotcha nyata yang penting diketahui kalau Anda ingin merangkai lebih dari satu perintah dalam satu sesi keep-awake: kutip semuanya sebagai satu argumen shell. lidrun -- 'npm test && npm run build' bekerja dengan benar — kedua perintah berjalan dalam satu sesi yang dibungkus. Membungkusnya dengan shell tambahan malah tidak berhasil, seperti lidrun -- bash -c 'npm test && npm run build': LidRun menggabungkan kembali daftar argumen dengan spasi polos sebelum menjalankannya ulang lewat login shell, yang diam-diam menghilangkan kutipan bagian dalam dan bisa melewatkan sebagian perintah. Mengutip sebagai satu argumen adalah pola yang bisa diandalkan. Kedua jalur ini juga mengembalikan exit code dari perintah Anda sendiri sebagai exit code-nya sendiri, jadi bisa langsung dipakai dalam chain &&/|| di skrip atau pengecekan $? persis seperti menjalankan perintahnya secara langsung.

Runner CLI atau GUI — pilih yang mana

Pakai CLI kalau Anda memang sudah mau mengetik perintahnya, ingin memasukkannya ke skrip atau workflow yang digerakkan dari terminal, atau tidak butuh (atau tidak punya) Pro. Exit code-nya langsung kembali ke shell Anda sendiri, dan tidak ada yang perlu dibuka atau dikonfigurasi.

Pakai GUI Run & Watch a Command kalau Anda ingin auto-stop baterai/termal benar-benar memantau pekerjaannya — bukan sekadar menahan assertion sambil berharap — atau kalau Anda ingin notifikasi ke ponsel tanpa harus membiarkan jendela terminal tetap terbuka, atau kalau tampilan live output di menu bar terasa lebih nyaman dibanding tab terminal. Ini butuh lisensi Pro; jalur CLI adalah versi gratis yang setara untuk semuanya kecuali pengaman keamanan itu dan penyebaran notifikasi ke banyak saluran.

Bagaimanapun, tujuannya sama: pekerjaan selesai, hasilnya diketahui, dan Mac bebas untuk tidur, bukannya dibiarkan tetap aktif oleh sakelar yang tidak pernah ada yang mematikannya kembali.

Di mana ini cocok dipakai

Bayangkan pekerjaan-pekerjaan yang Anda mulai lalu Anda tinggal mengerjakan hal lain: migrasi database panjang yang ingin Anda pastikan selesai dengan bersih, test suite lengkap yang makan waktu dua puluh menit dan Anda malas menungguinya, export data yang dijalankan sebelum tidur dan seharusnya selesai saat pagi. Untuk semua itu, laporan di akhir adalah separuh nilainya — mengetahui exit code dan durasinya memberi tahu Anda apakah migrasi berhasil diterapkan, test suite lolos, export benar-benar selesai, tanpa harus men-scroll output.

Untuk jalur GUI, ini berjalan dalam batasan keamanan yang sama seperti bagian lain di aplikasi: lewati ambang baterai yang sudah Anda atur, atau alami tekanan termal kritis, dan LidRun langsung menghentikan perintahnya, bukan memaksa hardware terus menjalankannya. Jalur CLI tidak punya pengaman itu secara bawaan, jadi untuk proses semalaman tanpa pengawasan, daya listrik dari colokan dan permukaan yang keras serta berventilasi tetap pilihan yang tepat, apa pun jalur yang Anda pakai — ini membantu mengurangi risiko pada proses panjang tanpa pengawasan; ini bukan jaminan bahwa pekerjaan itu akan bertahan apa pun yang terjadi pada hardware-nya.

Coba ini ketimbang melawan tidur saat layar tertutup

LidRun menjaga pekerjaan Anda tetap jalan saat layar tertutup, dengan perlindungan baterai dan suhu bawaan.

Unduh untuk macOS

Sudah punya LidRun? Baca panduan setup-nya →

Baru kenal LidRun? Lihat harga →

Sering ditanyakan

Apakah LidRun membuat Mac tetap aktif selama seluruh perintah berjalan?

Ya. Run & Watch a Command menahan keep-awake selama seluruh masa hidup perintah dan melepaskannya begitu perintah selesai, jadi Mac tetap aktif persis selama pekerjaan itu berjalan — perilaku yang sama seperti yang diberikan caffeinate secara gratis saat Anda memberinya perintah, ditambah pelaporan dan pengaman keamanan yang tidak dimiliki caffeinate.

Apa yang diberitahukan saat perintah selesai?

Ia melaporkan exit code dan durasinya (diformat seperti 12m 34s atau 1h 23m), dan selalu mengirim notifikasi lokal. Kalau Anda sudah mengatur push provider (ntfy.sh atau Pushover), notifikasi itu juga sampai ke ponsel Anda, dan di Pro Anda bisa menyebarkannya lebih jauh lagi ke Telegram, Discord, Slack, atau webhook generik.

Apakah ada versi command-line-nya, dan apakah gratis?

Ya — jalankan lidrun -- your-command dan LidRun menahan assertion keep-awake berumur pendek khusus untuk perintah itu, melepaskannya saat selesai. Ini gratis dan sepenuhnya mandiri, bahkan tetap berfungsi tanpa aplikasi LidRun berjalan. Fitur GUI Run & Watch a Command (tampilan output di menu bar, notifikasi, auto-stop baterai/termal) adalah fitur Pro; wrapper CLI-nya adalah versi gratis yang setara, minus pengaman keamanan itu.

Apakah ini membuat Mac tetap aktif saat lid tertutup?

Tidak, bukan dengan sendirinya. Baik jalur GUI maupun CLI hanya mencegah idle sleep, bukan forced sleep yang dipicu macOS saat Anda menutup lid secara fisik tanpa monitor eksternal terpasang. Untuk pekerjaan dengan lid tertutup, padukan dengan Closed-Lid mode (atau gunakan monitor eksternal, setup clamshell klasik) di atas Run & Watch.

Apa yang terjadi kalau baterai habis semalaman?

Pada jalur GUI, melewati ambang baterai yang sudah Anda atur (20% secara default) atau mengalami tekanan termal kritis membuat LidRun benar-benar menghentikan perintah yang sedang berjalan, bukan sekadar melepaskan keep-awake dan membiarkannya berjalan tanpa perlindungan di background. Wrapper lidrun -- di CLI tidak punya pengecekan seperti itu secara bawaan — ia hanya menahan assertion biasa selama proses berjalan, tanpa memandang level baterai — jadi daya listrik dari colokan adalah pilihan yang lebih aman untuk kedua jalur ini pada pekerjaan semalaman tanpa pengawasan.

Apakah ada timeout kalau perintah saya macet (hang)?

Tidak ada timeout bawaan di kedua jalur. Perintah yang macet tetap menahan assertion sampai selesai sendiri, Anda menghentikannya (tombol Stop di GUI, Ctrl-C di CLI), atau — hanya pada jalur GUI — pengaman keamanan baterai/termal menghentikannya untuk Anda.

Bisakah saya merangkai beberapa perintah dalam satu sesi keep-awake?

Bisa, kalau Anda mengutip semuanya sebagai satu argumen: lidrun -- 'npm test && npm run build' menjalankan keduanya dengan benar dalam satu sesi yang dibungkus. Membungkusnya dengan shell tambahan malah bisa diam-diam menghilangkan sebagian perintah, seperti lidrun -- bash -c '...', karena cara daftar argumennya digabungkan kembali — kutip perintah gabungan itu sebagai satu argumen, bukan sebagai argumen untuk shell bersarang (nested shell).

Berapa banyak output yang ditangkap?

Tampilan live di GUI menampilkan rolling tail dari 200 baris terakhir output — cukup untuk memastikan pekerjaan itu masih berjalan dan melihat progres terbaru, tapi ini tampilan live, bukan file log yang tersimpan. Arahkan (redirect) output perintah itu sendiri ke sebuah file kalau Anda butuh transkrip lengkap nanti.

Penasaran apakah LidRun cocok untuk Anda?

Biarkan ChatGPT, Claude, atau Perplexity yang mencari tahu — klik di bawah dan lihat pendapat AI tentang LidRun.