ಲಿನಕ್ಸ್ನಲ್ಲಿ ಇನಿಟ್ ಕಮಾಂಡ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು

ಇನಿಟ್ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳ ಮೂಲವಾಗಿದೆ . ಇದರ ಪ್ರಾಥಮಿಕ ಪಾತ್ರವು / etc / inittab ಕಡತದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ರಚಿಸುವುದು ( inittab (5) ನೋಡಿ). ಈ ಫೈಲ್ ಸಾಮಾನ್ಯವಾಗಿ ಬಳಕೆದಾರರಿಗೆ ಪ್ರವೇಶಿಸಲು ಪ್ರತಿ ಸಾಲಿನಲ್ಲಿ init ಅನ್ನು ಪಡೆಯುವಲ್ಲಿ init ಕಾರಣವಾಗುತ್ತದೆ. ಇದು ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ವ್ಯವಸ್ಥೆಯಿಂದ ಅಗತ್ಯವಾದ ಸ್ವಾಯತ್ತ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ.

ರನ್ಲೆವೆಲ್ಗಳು

ಒಂದು ರನ್ಲೆವೆಲ್ ಎನ್ನುವುದು ವ್ಯವಸ್ಥೆಯ ಒಂದು ತಂತ್ರಾಂಶ ಸಂರಚನೆಯಾಗಿದ್ದು, ಇದು ಆಯ್ದ ಸಮೂಹ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಮಾತ್ರ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. ಈ ರನ್ಲೆವೆಲ್ಗಳಿಗಾಗಿ ಪ್ರತಿಯೊಂದು ಇನಿಟ್ನ ಪ್ರಕ್ರಿಯೆಗಳು / etc / inittab ಕಡತದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. Init ಎಂಟು ರನ್ಲೆವೆಲ್ಗಳಲ್ಲಿ ಒಂದಾಗಬಹುದು : 0-6 ಮತ್ತು ಎಸ್ ಅಥವಾ ಎಸ್ . ಸವಲತ್ತುಗೊಂಡ ಬಳಕೆದಾರ ರನ್ ಟೆಲಿನಿಟ್ ಅನ್ನು ಹೊಂದುವ ಮೂಲಕ ರನ್ಲೆವೆಲ್ ಅನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ, ಇದು init ಗೆ ಸೂಕ್ತವಾದ ಸಂಕೇತಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ, ಇದು ಯಾವ ರನ್ಲೆವೆಲ್ಗೆ ಬದಲಾಯಿಸಬೇಕೆಂದು ಹೇಳುತ್ತದೆ.

ರನ್ಲೆವೆಲ್ಗಳು 0 , 1 , ಮತ್ತು 6 ಅನ್ನು ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ. ಸಿಸ್ಟಮ್ ಅನ್ನು ನಿಲ್ಲಿಸಲು ರನ್ಲೆವೆಲ್ 0 ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಸಿಸ್ಟಮ್ ಅನ್ನು ರೀಬೂಟ್ ಮಾಡಲು ರನ್ಲೆವೆಲ್ 6 ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಸಿಸ್ಟಮ್ ಅನ್ನು ಒಂದೇ ಬಳಕೆದಾರ ಮೋಡ್ಗೆ ಪಡೆಯಲು ರನ್ಲೆವೆಲ್ 1 ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ರನ್ಲೆವೆಲ್ ಎಸ್ ಅನ್ನು ನೇರವಾಗಿ ಬಳಸುವುದು ನಿಜವಾಗಿಯೂ ಅರ್ಥವಲ್ಲ, ಆದರೆ ರನ್ಲೆವೆಲ್ 1 ಅನ್ನು ನಮೂದಿಸುವಾಗ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಸ್ಕ್ರಿಪ್ಟುಗಳಿಗೆ ಹೆಚ್ಚು. ಈ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ಸ್ಥಗಿತಗೊಳಿಸುವಿಕೆ (8) ಮತ್ತು inittab (5) ಗಾಗಿ ಮ್ಯಾನ್ಪುಟಗಳನ್ನು ನೋಡಿ.

7-9 ರನ್ಲೆವೆಲ್ಗಳು ಸಹ ಮಾನ್ಯವಾಗಿರುತ್ತವೆ, ಆದರೂ ನಿಜವಾಗಿಯೂ ದಾಖಲಿಸಲಾಗಿಲ್ಲ. ಏಕೆಂದರೆ "ಸಾಂಪ್ರದಾಯಿಕ" ಯುನಿಕ್ಸ್ ರೂಪಾಂತರಗಳು ಅವುಗಳನ್ನು ಬಳಸುವುದಿಲ್ಲ. ನೀವು ಕುತೂಹಲವಿದ್ದರೆ, ರನ್ಲೆವೆಲ್ ಎಸ್ ಮತ್ತು ರು ವಾಸ್ತವವಾಗಿ ಒಂದೇ ಆಗಿರುತ್ತದೆ. ಆಂತರಿಕವಾಗಿ ಅವರು ಅದೇ ರನ್-ಲೆವೆಲ್ಗಾಗಿ ಅಲಿಯಾಸ್ಗಳು.

ಬೂಟ್ ಮಾಡುವುದು

ಕರ್ನಲ್ ಬೂಟ್ ಸೀಕ್ವೆನ್ಸ್ನ ಕೊನೆಯ ಹಂತವಾಗಿ init ಅನ್ನು ಆಹ್ವಾನಿಸಿದ ನಂತರ, ಇದು type initdefault ( inittab (5) ನೋಡಿ) ಅನ್ನು ನೋಡಲು / etc / inittab ಗೆ ಹುಡುಕುತ್ತದೆ. Initdefault ನಮೂದು ವ್ಯವಸ್ಥೆಯ ಆರಂಭಿಕ ರನ್ಲೆವೆಲ್ ಅನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಅಂತಹ ನಮೂದು ಇಲ್ಲದಿದ್ದರೆ (ಅಥವಾ ಇಲ್ಲ / etc / inittab ಇಲ್ಲ ), ಒಂದು ರನ್-ಲೆವೆಲ್ ಅನ್ನು ಸಿಸ್ಟಮ್ ಕನ್ಸೋಲ್ನಲ್ಲಿ ನಮೂದಿಸಬೇಕು.

ರನ್ಲೆವೆಲ್ S ಅಥವ s ಗಣಕವನ್ನು ಒಂದೇ ಬಳಕೆದಾರ ಕ್ರಮಕ್ಕೆ ತರಲು ಮತ್ತು / etc / inittab ಕಡತದ ಅಗತ್ಯವಿಲ್ಲ. ಏಕ ಬಳಕೆದಾರ ಕ್ರಮದಲ್ಲಿ, ಒಂದು ರೂಟ್ ಶೆಲ್ ಅನ್ನು / dev / console ನಲ್ಲಿ ತೆರೆಯಲಾಗುತ್ತದೆ.

ಏಕ ಬಳಕೆದಾರ ಕ್ರಮವನ್ನು ನಮೂದಿಸುವಾಗ, init ಕನ್ಸೋಲ್ ioctl (2) ಅನ್ನು /etc/ioctl.save ನಿಂದ ಓದುತ್ತದೆ . ಈ ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ, init ಯು 9600 ಬೂಡ್ ಮತ್ತು CLOCAL ಸೆಟ್ಟಿಂಗ್ಗಳೊಂದಿಗೆ ಆರಂಭಗೊಳ್ಳುತ್ತದೆ . Init ಏಕ ಬಳಕೆದಾರ ಕ್ರಮವನ್ನು ಬಿಟ್ಟಾಗ , ಇದು ಈ ಫೈಲ್ನಲ್ಲಿ ಕನ್ಸೋಲ್ನ ioctl ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಆದ್ದರಿಂದ ಮುಂದಿನ ಏಕ-ಬಳಕೆದಾರ ಸೆಷನ್ಗೆ ಅವುಗಳನ್ನು ಮರು-ಬಳಸಬಹುದು.

ಮೊದಲ ಬಾರಿಗೆ ಬಹು-ಬಳಕೆದಾರ ಕ್ರಮಕ್ಕೆ ಪ್ರವೇಶಿಸುವಾಗ, ಬಳಕೆದಾರರು ಲಾಗಿನ್ ಆಗುವ ಮೊದಲು ಕಡತ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಆರೋಹಿಸಲು ಅವಕಾಶ ನೀಡಲು ಬೂಟ್ ಮತ್ತು ಬೂಟ್ ವೇಟ್ ನಮೂದುಗಳನ್ನು init ನಿರ್ವಹಿಸುತ್ತದೆ. ನಂತರ ರನ್ಲೆವೆಲ್ಗೆ ಸರಿಹೊಂದುವ ಎಲ್ಲಾ ನಮೂದುಗಳನ್ನು ಸಂಸ್ಕರಿಸಲಾಗುತ್ತದೆ.

ಒಂದು ಹೊಸ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರಾರಂಭಿಸುವಾಗ, init ಮೊದಲು ಫೈಲ್ / etc / initscript ಅಸ್ತಿತ್ವದಲ್ಲಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಅದು ಮಾಡಿದರೆ, ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಬಳಸುತ್ತದೆ.

ಮಗುವಿನ ಕೊನೆಗೊಳ್ಳುವ ಪ್ರತಿ ಬಾರಿ, init ವಾಸ್ತವವಾಗಿ ದಾಖಲಿಸುತ್ತದೆ ಮತ್ತು / var / run / utmp ಮತ್ತು / var / log / wtmp ನಲ್ಲಿ ನಿಧನದ ಕಾರಣ ಈ ಕಡತಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ.

ರನ್ಲೆವೆಲ್ಗಳನ್ನು ಬದಲಾಯಿಸುವುದು

ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳನ್ನೂ ಅದು ಉಂಟುಮಾಡಿದ ನಂತರ, init ಸಾಯುವ ಅದರ ವಂಶಸ್ಥ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ಒಂದನ್ನು ಕಾಯುತ್ತದೆ, ಪವರ್ಫೈಲ್ ಸಿಗ್ನಲ್ ಅಥವಾ ಸಿಸ್ಟಲ್ ರ ರನ್ಲೆವೆಲ್ ಅನ್ನು ಬದಲಿಸಲು ಟೆಲಿನಿಟ್ನಿಂದ ಸೂಚಿಸಲ್ಪಡುತ್ತದೆ. ಮೇಲಿನ ಮೂರು ಪರಿಸ್ಥಿತಿಗಳು ಸಂಭವಿಸಿದಾಗ, ಅದು / etc / inittab ಕಡತವನ್ನು ಪುನಃ ಪರಿಶೀಲಿಸುತ್ತದೆ. ಹೊಸ ನಮೂದುಗಳನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಈ ಫೈಲ್ಗೆ ಸೇರಿಸಬಹುದು. ಹೇಗಾದರೂ, init ಇನ್ನೂ ಸಂಭವಿಸುವ ಮೇಲಿನ ಮೂರು ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಒಂದು ಕಾಯುತ್ತದೆ. ತತ್ಕ್ಷಣದ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಒದಗಿಸಲು, ಟೆಲಿನಿಟ್ Q ಅಥವಾ q ಕಮಾಂಡ್ / etc / inittab ಫೈಲ್ ಅನ್ನು ಪುನಃ ಪರೀಕ್ಷಿಸಲು init ಅನ್ನು ಎಚ್ಚರಗೊಳಿಸಬಹುದು.

Init ಒಂದೇ ಬಳಕೆದಾರ ಮೋಡ್ನಲ್ಲಿಲ್ಲದಿದ್ದರೆ ಮತ್ತು ಪವರ್ಫೈಲ್ ಸಿಗ್ನಲ್ (SIGPWR) ಅನ್ನು ಪಡೆದರೆ, ಅದು / etc / powerstatus ಫೈಲ್ ಅನ್ನು ಓದುತ್ತದೆ. ನಂತರ ಈ ಕಡತದ ವಿಷಯಗಳನ್ನು ಆಧರಿಸಿ ಆಜ್ಞೆಯನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ:

ಅನುತ್ತೀರ್ಣ)

ವಿದ್ಯುತ್ ವಿಫಲವಾಗಿದೆ, ಯುಪಿಎಸ್ ಶಕ್ತಿಯನ್ನು ಒದಗಿಸುತ್ತಿದೆ. ಪವರ್ವೈಟ್ ಮತ್ತು ಪವರ್ಫೈಲ್ ನಮೂದುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ.

ಸರಿ)

ವಿದ್ಯುತ್ ಪುನಃಸ್ಥಾಪಿಸಲಾಗಿದೆ, ವಿದ್ಯುತ್ಕ್ಯಾಟ್ ನಮೂದುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ.

L (OW)

ವಿದ್ಯುತ್ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಯುಪಿಎಸ್ ಕಡಿಮೆ ಬ್ಯಾಟರಿ ಹೊಂದಿದೆ. Powerfailnow ನಮೂದುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ.

/ Etc / powerstatus ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ ಅಥವಾ ಬೇರೆ ಯಾವುದನ್ನಾದರೂ ಹೊಂದಿದ್ದರೆ ಅದು ಎಫ್ , ಅಥವಾ ಎಲ್ ಅಕ್ಷರಗಳಾಗಿದ್ದಲ್ಲಿ, ಇಟ್ ಅಕ್ಷರ ಎಫ್ ಅನ್ನು ಓದಿದಂತೆಯೇ ವರ್ತಿಸುತ್ತದೆ.

SIGPWR ಮತ್ತು / etc / powerstatus ಬಳಕೆ ನಿರುತ್ಸಾಹಗೊಳ್ಳುತ್ತದೆ. Init ಗೆ ಸಂವಹನ ಮಾಡಲು ಬಯಸುತ್ತಿರುವ ಯಾರೊಬ್ಬರು / dev / initctl ನಿಯಂತ್ರಣ ಚಾನಲ್ ಅನ್ನು ಬಳಸಬೇಕು - ಇದರ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ದಾಖಲಾತಿಗಾಗಿ sysvinit ಪ್ಯಾಕೇಜಿನ ಮೂಲ ಕೋಡ್ ಅನ್ನು ನೋಡಿ.

ರನ್-ಲೆವೆಲ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಇನಿಟ್ಗೆ ವಿನಂತಿಸಿದಾಗ, ಹೊಸ ರನ್ಲೆವೆಲ್ನಲ್ಲಿ ಸ್ಪಷ್ಟೀಕರಿಸದ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಎಚ್ಚರಿಕೆ ಸಿಗ್ನಲ್ SIGTERM ಅನ್ನು ಇದು ಕಳುಹಿಸುತ್ತದೆ. ನಂತರ SIGKILL ಸಿಗ್ನಲ್ ಮೂಲಕ ಬಲವಂತವಾಗಿ ಈ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಕೊನೆಗೊಳಿಸುವುದಕ್ಕೆ 5 ಸೆಕೆಂಡ್ಗಳ ಮೊದಲು ಕಾಯುತ್ತದೆ. ಈ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳು (ಮತ್ತು ಅವರ ವಂಶಸ್ಥರು) ಒಂದೇ ಪ್ರಕ್ರಿಯೆ ಗುಂಪಿನಲ್ಲಿಯೇ ಉಳಿದಿವೆ ಎಂದು init ಊಹಿಸುತ್ತದೆ, ಇದು ಮೂಲತಃ ಅವುಗಳನ್ನು ರಚಿಸಿದ init . ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಯು ಅದರ ಪ್ರಕ್ರಿಯೆ ಸಮೂಹವನ್ನು ಬದಲಾಯಿಸಿದಲ್ಲಿ ಅದು ಈ ಸಂಕೇತಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ. ಇಂತಹ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ನಿಲ್ಲಿಸಬೇಕಾಗಿದೆ.

ಟೆಲಿನಿಟ್

/ sbin / telinit ಅನ್ನು / sbin / init ಗೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ . ಸೂಕ್ತ ಕ್ರಮವನ್ನು ನಿರ್ವಹಿಸಲು ಇದು ಒಂದು-ಪಾತ್ರದ ವಾದವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಸಂಕೇತಗಳನ್ನು init ಮಾಡುತ್ತದೆ. ಕೆಳಗಿನ ವಾದಗಳು ಟೆಲಿನಿಟ್ಗೆ ನಿರ್ದೇಶನಗಳಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ:

0 , 1 , 2 , 3 , 4 , 5 ಅಥವಾ 6

ನಿಗದಿತ ರನ್ ಮಟ್ಟಕ್ಕೆ ಬದಲಾಯಿಸಲು init ಗೆ ತಿಳಿಸಿ.

a , b , c

runlevel a , b ಅಥವಾ c ಅನ್ನು ಹೊಂದಿರುವ / etc / inittab ಕಡತ ನಮೂದುಗಳನ್ನು ಮಾತ್ರ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು init ಗೆ ತಿಳಿಸಿ.

ಪ್ರಶ್ನೆ ಅಥವಾ ಕ್ಯೂ

/ etc / inittab ಕಡತವನ್ನು ಪುನಃ ಪರೀಕ್ಷಿಸಲು init ಗೆ ತಿಳಿಸಿ.

ಎಸ್ ಅಥವಾ ರು

ಏಕ ಬಳಕೆದಾರ ಕ್ರಮಕ್ಕೆ ಬದಲಾಯಿಸಲು init ಗೆ ತಿಳಿಸಿ.

ಯು ಅಥವಾ ಯು

ಸ್ವತಃ ಪುನಃ ಕಾರ್ಯಗತಗೊಳಿಸಲು (ರಾಜ್ಯವನ್ನು ಸಂರಕ್ಷಿಸುವ) init ಗೆ ತಿಳಿಸಿ. / Etc / inittab ಕಡತವನ್ನು ಪುನಃ ಪರೀಕ್ಷಿಸಲಾಗುವುದಿಲ್ಲ. ರನ್ ಮಟ್ಟದ Ss12345 ರಲ್ಲಿ ಒಂದು ಆಗಿರಬೇಕು, ಇಲ್ಲದಿದ್ದರೆ ವಿನಂತಿಯನ್ನು ಮೌನವಾಗಿ ಕಡೆಗಣಿಸಲಾಗುತ್ತದೆ.

SIGTERM ಮತ್ತು SIGKILL ಸಿಗ್ನಲ್ಗಳನ್ನು ಕಳುಹಿಸುವ ನಡುವಿನ ಕಾಲಾವಧಿಯು ಎಷ್ಟು ಕಾಯಬೇಕು ಎಂದು ಟೆಲಿನಿಟ್ ಸಹ init ಗೆ ಹೇಳಬಹುದು. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ 5 ಸೆಕೆಂಡುಗಳು, ಆದರೆ ಇದನ್ನು -t ಸೆಕೆಂಡು ಆಯ್ಕೆಯನ್ನು ಬದಲಾಯಿಸಬಹುದು.

ಸೂಕ್ತವಾದ ಸವಲತ್ತುಗಳೊಂದಿಗೆ ಬಳಕೆದಾರರಿಂದ ಮಾತ್ರ ಟೆಲಿನಿಟ್ ಅನ್ನು ಆಹ್ವಾನಿಸಬಹುದು.

Init ಬೈನರಿ ಅದರ ಪ್ರಕ್ರಿಯೆಯ ಐಡಿ ನೋಡುವ ಮೂಲಕ init ಅಥವಾ telinit ಆಗಿದ್ದರೆ ಅದನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ; ನಿಜವಾದ ಇನಿಟ್ನ ಪ್ರಕ್ರಿಯೆಯ ಐಡಿ ಯಾವಾಗಲೂ 1 ಆಗಿದೆ . ಇದರಿಂದಾಗಿ ಟೆಲಿನಿಟ್ಗೆ ಕರೆ ಮಾಡುವ ಬದಲು ಶಾರ್ಟ್ಕಟ್ ಆಗಿ ಬದಲಾಗಿ init ಅನ್ನು ಬಳಸಬಹುದು.