Я пытаюсь запустить отдельный экран под конкретным пользователем в rc.local при загрузке. Код ниже - это то, что у меня есть, но оно не работает для меня. Часть su, кажется, дает мне ошибку.
su - username -c /usr/bin/screen -dmS test bash -c '/var/www/path/to/script/script.sh; exec bash'
-c
ನಿಯತಾಂಕಗಳು ( ಸು
ಮತ್ತು ಬ್ಯಾಷ್
) ಅನ್ನು ಕನಿಷ್ಠ ಉಲ್ಲೇಖಿಸಬೇಕಾಗುತ್ತದೆ. .
ಇನ್ನೂ ಕೆಲವು ಟೀಕೆಗಳು. . .
ನೀವು ಜಾಗರೂಕರಾಗಿರಲು ಬಯಸುವ ಇನ್ನೊಂದು ವಿಷಯವೆಂದರೆ ಸವಲತ್ತು ಪಡೆದ ಸಂದರ್ಭದಲ್ಲಿ ಸಂಪೂರ್ಣ ಮಾರ್ಗವಿಲ್ಲದೆ ಆಜ್ಞೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು. ಇದು ಸು
(ಅಥವಾ ಸುಡೋ
) ಅನ್ನು ಹೊಂದಿದೆ ಆದರೆ ನಿಮ್ಮ ಆಜ್ಞೆಯಲ್ಲಿ ಬ್ಯಾಷ್
ಗೆ ಹಾದಿಯನ್ನು ಹೊಂದಿದೆ. ನೀವು ಅದನ್ನು ಪರದೆಯೊಂದಿಗೆ
ಸರಿಯಾಗಿ ಮಾಡುತ್ತಿದ್ದೀರಿ.
ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ ಮತ್ತು ಅದು ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ನಿಮ್ಮ ಮೂಲ ಸಾಲಿನಲ್ಲಿ -
ಮುಖ್ಯ ವಿಷಯವಾಗಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ:
/bin/su username -c "/usr/bin/screen -dmS test bash -c '/home/username/test.sh; exec bash'"
ದುಷ್ಟ ಹೇಳಿಕೆ: ನೀವು ಟಿಮಕ್ಸ್
ಅನ್ನು ಏಕೆ ಪ್ರಯತ್ನಿಸಬಾರದು? ನಾನು ಇತ್ತೀಚೆಗೆ ಬದಲಾಯಿಸಿದ್ದೇನೆ ಮತ್ತು ಹಿಂದೆ ಮುಂದೆ ನೋಡಲಿಲ್ಲ. tmux
ನಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಆಗಿ Ctrl + B - ಗ್ನೂ ಪರದೆ
Ctrl + A .ಸ್ಥಾನಮಾನವನ್ನು ಒಳಗೊಂಡಂತೆ) ವಾಸ್ತವವಾಗಿ ಮನುಷ್ಯರಿಗೆ ಅರ್ಥವಾಗುತ್ತದೆ. ಸಹಜವಾಗಿ tmux
ಪರದೆಯ
ನಷ್ಟು ಉತ್ತಮವಾಗಿದೆ, ನೀವು ಮೂಲತಃ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಡೀಮನ್ ಎಂದು ಬರೆಯದ ಕೆಲವು ಪ್ರೋಗ್ರಾಂ / ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಚಲಾಯಿಸಲು ಬಯಸಿದಾಗ. ಆದಾಗ್ಯೂ, ನೀವು ಟರ್ಮಿನಲ್ ಮಲ್ಟಿಪ್ಲೆಕ್ಸರ್ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಬಯಸಿದರೆ, ನಾನು ಟಿಮಕ್ಸ್
ಅನ್ನು ಉತ್ಸಾಹದಿಂದ ಶಿಫಾರಸು ಮಾಡುತ್ತೇನೆ.
Вот то, что я использовал, я нашел его самым чистым и простым (проверял, работает сам):
Замените «user» на пользователя, от имени которого он будет запускаться. Замените nameyouchoose на имя сеанса экрана Замените "/script/start.bash" на путь к вашему сценарию.
/usr/bin/sudo -u user /usr/bin/screen -dmS nameyouchoose /script/start.bash
Запуск сценария на новом отключенном экране от имени текущего пользователя (rc.local = root):
screen -dmS <имя сеанса> <команда>
, пример:
screen -dmS screenName bash /home/user/run.sh[12247 visible Запуск сценария из rc.local от имени
пользователя
:
runuser -l user -c 'screen -dmS screenName bash / home /user/run.sh'