Вы можете использовать команду
usermod -s /sbin/nologin username
Есть кое-что, что я не могу сформулировать по этому вопросу, и я полагаю, что это как-то связано с текстом:
[1]+ Stopped ./chroot-poll.sh
Я только каждый раз видел такой текст при запуске процесса в фоновом режиме, но &
нигде в вопросе нет, и вы не упомянули о запуске задания в фоновом режиме. Как отмечают другие, я не могу воспроизвести вашу ошибку , за исключением , если я запускаю скрипт в фоновом режиме.
Когда я пытаюсь запустить ваш скрипт с помощью ./chroot-poll.sh &
, а не просто ./chroot-poll.sh
, я получаю такие же результаты, как и вы, поэтому я могу только предположить, что вы запускаете его в фоновом режиме.
Обычно задание переходит в Stopped
, когда оно выполняется в фоновом режиме и пытается прочитать из стандартного ввода. Очень простой обходной путь для этого может заключаться в том, чтобы читать из /dev/null
вместо:
./chroot-poll.sh < /dev/null
Таким образом, когда что-либо пытается прочитать, оно будет читаться из /dev/null
, а не из стандартного ввода.
Я считаю, что в конечном итоге это происходит потому, что вы используете bash в интерактивном режиме. Вы не просите его выполнить скрипт, а только переопределяете ~/.bashrc
. Несмотря на то, что exit
bash по-прежнему читает со стандартного ввода, как будто ожидает, что вы что-то наберете в командной строке. Чтобы заставить bash читать скрипт как скрипт, используйте:
sudo chroot /mnt/myrootfs /bin/bash -f /tmp/hello.sh