Saya selalu menggunakan perintah:
shutdown -r now
Namun, terkadang itu menyebabkan masalah MySQL.
Apa cara paling anggun untuk memulai ulang CentOS?
Saya telah melihat:
reboot
dan
halt
Bagaimana saya bisa dengan lembut me-reboot mesin?
reboot
pada dasarnya adalah alias untukshutdown -r
... jadi ... ya.sync: sync;
sebelum menjalankanshutdown -r
sehingga semua file I / O akan disinkronkan. Saya menduga ini juga akan menyelesaikan masalah denganmysql
Jawaban:
Tidak ada cara yang lebih baik untuk me-restart server Anda dengan menggunakan apa pun selain perintah-perintah itu.
-r
dan waktu tertentu (atau 'now
') akan reboot sistem Anda alih-alih menghentikannya setelah urutan shutdown.reboot
(> 2.74) akan dimulaishutdown
jika tidak di runlevel 0 atau 6.Distribusi modern akan memiliki semua tugas yang dicakup terlepas dari perintah yang Anda gunakan. Pada dasarnya mereka semua memulai shutdown run-time skrip SysV Anda (CentOS <7) atau systemd (CentOS> = 7) (Saya akan memanggil mereka skrip init untuk kemudahan membaca).
Mematikan menggunakan skrip init langkah demi langkah menghentikan semua layanan Anda terdaftar di bawah biasanya runlevel 'S'. Skrip init individual dapat memiliki batas waktu, seperti skrip init MySQL di CentOS. Ketika argumen berhenti diberikan dan daemon tidak akan dimatikan dalam jumlah waktu yang wajar, skrip akan berhenti dan keluar memberikan kegagalan. Proses shutdown akan berlanjut seolah-olah tidak ada yang salah, hanya membutuhkan waktu sedikit lebih lama dan mungkin mencetak peringatan. Pada akhirnya, ketika semua skrip init dieksekusi, hal yang tak terhindarkan akan terjadi: semua proses yang masih berjalan akan mendapatkan
SIGTERM
sinyal dan, setelah beberapa detik (2 atau 5), aSIGKILL
. Ini akan membersihkan sisanya sebelum panggilan ACPI dilakukan untuk benar-benar mem-boot ulang atau mematikan sistem Anda.Satu pengecualian adalah menggunakan
reboot
perintah dengan-f
opsi, ini akan melewatkan mengeksekusi skrip init dan akan reboot sistem secara langsung.Anda akan lebih baik memperbaiki akar-penyebab kekhawatiran Anda: MySQL tidak dimatikan dengan benar.
Seringkali ini karena beban pekerjaan yang sangat besar yang perlu dilakukan sebelum daemon dapat keluar dengan aman. Saya pernah memiliki instance MySQL dengan +300.000 tabel yang membutuhkan waktu lebih dari satu jam untuk keluar. Masalah serupa dapat ditemukan dengan sistem yang menggunakan buffer besar dan ketersediaan I / O yang jarang.
sumber
Shutdown anggun dari Centos 6.x harus dilakukan dengan menggunakan perintah sebagai root:
Ini akan berusaha untuk menghentikan semua layanan yang berjalan sebelum mematikan server dengan anggun.
Menggunakan perintah ini juga mencegah masalah soket mySQL.
Demikian pula, untuk reboot yang anggun:
Anda dapat membaca jawaban sebelumnya tentang pertanyaan serupa di sini:
https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket
sumber
shutdown -r now
, atau mungkin adilreboot
. Thereboot
perintah tidak memiliki-h
pilihan.-h
opsi ini ? Itu tidak ada di halaman manual.reboot
dilakukannya tanpa-h
. Kedua, tidak didokumentasikan seperti itu sama sekali, sejauh yang saya tahu.reboot
tidak punya-h
pilihan,shutdown
tidak.Saat memberikan instruksi jarak jauh kepada pengguna akhir dan pelanggan, saya memerintahkan mereka
poweroff
untuk mematikan dan mematikan sistem.Jika mereka menginginkan boot ulang yang hangat, saya sarankan mereka menggunakan
reboot
perintah.Saya kira orang bisa mengatakan bahwa menerbitkan
Ctrl-Alt-Delete
juga menyelesaikan ini;)sumber
Saya menggunakan perintah 'init 6'.
init 6 memberi tahu proses init untuk mematikan semua proses / daemon yang muncul seperti yang tertulis dalam file init (dalam urutan terbalik yang dimulai) dan terakhir memohon perintah shutdown -r sekarang untuk mem-boot ulang mesin.
Informasi lebih lanjut dapat ditemukan pada pertanyaan ini .
sumber
Saya merasa Anda mungkin tidak menyukai jawaban ini, tetapi jawaban ini mencakup beberapa wawasan yang tidak ada yang dipertimbangkan. . . Anda menulis:
Masalahnya di sini BUKAN metode shutdown Anda, adalah bagian dari perangkat lunak yang tidak dapat menangani shutdown dengan benar; MySql.
Cara HANYA Anda benar-benar dapat mengatasi ini adalah mengganti MySql (PostgreSql adalah pengganti yang hebat) ATAU menulis skrip shutdown Anda sendiri yang coddles pertama MySql seperti bayi, dan ketika senang ditutup maka THEN mematikan sistem.
... Sebagai orang yang memiliki spesialisasi dalam sistem basis data selama lebih dari 26 tahun, saya dapat memberi tahu Anda bahwa baru belakangan ini MySql mulai bekerja bersama mengenai kompetensi pada aspek terpenting dari apa sistem basis data itu. untuk - keamanan / integritas data. Sebelumnya, mereka kurang memperhatikan aspek-aspek ini dan lebih memperhatikan kinerja. Tapi apa gunanya kinerja hebat jika Anda kehilangan data? Pada BEBERAPA aplikasi, seperti, katakanlah, Netflix streaming rekaman video pada titik apa yang Anda tonton, kesetiaan absolut mungkin tidak terlalu penting - mungkin, bahkan, pelanggan Anda SEPERTI video Anda mencadangkan sedikit setelah kegagalan. Tetapi dalam sistem perbankan, ini adalah bencana dengan proporsi epik. Hanya pemilik data yang dapat mengetahui apa yang tepat untuk mereka.
sumber