Перезапуск atd
сервис не сбрасывал идентификатор задания, как мы подозревали:
некоторые тестовые представления
$ at -f test.bash now
job 105 at Mon Sep 23 20:04:00 2013
$ at -f test.bash now
job 106 at Mon Sep 23 20:04:00 2013
проверение дважды dir шпульки
$ sudo ls -l /var/spool/at/spool/
total 0
перезапуск фактического времени отправления
$ sudo/etc/init.d/atd фактическое время отправления Остановки перезапуска: [хорошо] Стартовое фактическое время отправления: [хорошо]
последующие тестовые представления
$ at -f test.bash now
job 107 at Mon Sep 23 20:05:00 2013
$ at -f test.bash now
job 108 at Mon Sep 23 20:05:00 2013
Таким образом, если Вы смотрите на исполняемый файл atd
с инструментом такой как lsof
Вы заметите следующее:
$ sudo lsof | grep atd
atd 22341 root cwd DIR 253,0 4096 2103653 /var/spool/at
atd 22341 root rtd DIR 253,0 4096 2 /
atd 22341 root txt REG 253,0 24712 1192814 /usr/sbin/atd
atd 22341 root mem REG 253,0 57440 393478 /lib64/libnss_files-2.13.so
atd 22341 root mem REG 253,0 387352 393694 /lib64/libfreebl3.so
atd 22341 root mem REG 253,0 43304 393695 /lib64/libcrypt-2.13.so
atd 22341 root mem REG 253,0 99128 393328 /lib64/libaudit.so.1.0.0
atd 22341 root mem REG 253,0 22536 393671 /lib64/libdl-2.13.so
atd 22341 root mem REG 253,0 1956608 393664 /lib64/libc-2.13.so
atd 22341 root mem REG 253,0 13776 393333 /lib64/libpam_misc.so.0.82.0
atd 22341 root mem REG 253,0 55280 393331 /lib64/libpam.so.0.82.2
atd 22341 root mem REG 253,0 124592 393682 /lib64/libselinux.so.1
atd 22341 root mem REG 253,0 151456 393578 /lib64/ld-2.13.so
atd 22341 root 0u CHR 1,3 0t0 4066 /dev/null
atd 22341 root 1u CHR 1,3 0t0 4066 /dev/null
atd 22341 root 2u CHR 1,3 0t0 4066 /dev/null
atd 22341 root 3uW REG 253,0 6 1966556 /var/run/atd.pid
Таким образом, нет никакого открытого файла, но существует каталог, /var/spool/at
, поэтому давайте займемся расследованиями немного далее там:
$ sudo ls -la /var/spool/at/
total 20
drwx------. 3 daemon daemon 4096 Sep 23 20:42 .
drwxr-xr-x. 15 root root 4096 Aug 8 2011 ..
-rw-------. 1 daemon daemon 6 Sep 23 20:05 .SEQ
drwx------. 2 daemon daemon 4096 Sep 23 20:42 spool
Бинго! Существует вещь, которую мы ищем, названный файл .SEQ
. Больше файл показывает это:
$ sudo more .SEQ
0006c
Мы можем убедить нас в том, что это - правильное использование значения bc
преобразовать это от шестнадцатеричного числа к десятичному числу:
$ echo "ibase=16; 0006C"|bc
108
Кажется, помещает число здесь в шестнадцатеричное число. Мы можем сделать немного эксперимента и изменить это значение на 0. Но сначала остановитесь atd
сервис.
$ sudo /etc/init.d/atd stop
...edit file using vim, change it to 0...
$ sudo /etc/init.d/atd start
Теперь запустите другой тест at
:
$ at -f test.bash now
job 1 at Mon Sep 23 20:52:00 2013
И число перезапустило, мы вернулись к 1. Если я останавливаю, редактирую, запустите его снова и поместите значение 0006c
въезжайте задним ходом:
$ at -f test.bash now
job 109 at Mon Sep 23 20:53:00 2013
Тайна решена.
Вышеупомянутое было выслежено в системе Fedora, другие дистрибутивы, такие как Debian & Ubuntu могут сохранить .SEQ
файл в совершенно другом каталоге. Например, Ubuntu хранит файл как это:
$ sudo pwd
/var/spool/cron/atjobs
$ sudo ls -la
total 12
drwxrwx--T 2 daemon daemon 4096 Sep 23 21:19 .
drwxr-xr-x 5 root root 4096 Oct 17 2012 ..
-rw------- 1 daemon daemon 6 Sep 23 21:19 .SEQ
Попробуйте: CD / USR / BIN; су
.
Так как вы не дали абсолютный путь к ZSH. SU
проверяет PWD
. Смена в каталог ZSH
существует в работе на некоторых системах.
Пример:
% su
Password:
su: zsh: No such file or directory
% cd /usr/local/bin
% su
Password:
# print $OSTYPE
freebsd10.0
#
В
if [ $x -eq 0 ]
x
пуст, так как строка
x= divisible_by "$divider"
неверна: она вызывает разделяемый _ на
с пустой переменной среды x
, но даже не пытается установить x
в среде оболочки. Вам нужно:
divisible_by "$divider"
x=$?
И вы всегда должны цитировать ваши переменные.
-121--252922-Что делать? Что я сделал не так?
Вы создали невыгружаемый изо. Для установки базовой системы необходимо прочитать файл РИДМИ , в котором указано:
Boot from base1.img и следовать инструкциям на экране.
Это означает, что необходимо добавить контроллер дискеты к виртуальной машине и использовать файл с именем base1.img (фактически « Base 01 (2 .1a) .img ») в качестве виртуального носителя вместо создания iso.
Если честно, это может быть не конец ваших проблем, как, используя те же файлы и VirtureBox, я никогда не пошел дальше, чем паника во время загрузки:
PANIC: HD CONTROLLER: COMMAND ABORTED
или прекращение с этим сообщением:
Incorrect UNIX System "Base System Package" Floppy Disk 1
This disk is not appropriate for
machines exclusively equipped with SCSI peripherals.
-121--89322- Ваша запись в /etc/passwd
является
root: x: 0:0: root:
Это недопустимая запись: оболочка должна быть полным путем к исполняемому файлу, программа входа не выполняет поиск $ PATH.
Вы не сможете войти в корневую учетную запись обычным способом. Можно использовать sudo для вызова команды, например sudo vipw
, если ваша учетная запись имеет разрешения sudo. Это единственный распространенный метод обхода настройки оболочки входа в целевой учетной записи.
Если вы не судоер, вы, вероятно, заблокировали себя от корневой учетной записи. Для восстановления системы потребуется доступ консоли. Загрузитесь в однопользовательском режиме (см. Как выполнить команду в качестве системного администратора (root) ) и отредактируйте /etc/passwd
, чтобы он содержал
root:x:0:0:root:/root:/bin/zsh
(с правильным путем для zsh в вашей системе).
Некоторые администраторы настраивают учетную запись с UID 0, но другую оболочку (как правило, статически связанный двоичный файл, такой как sash , чтобы разрешить root входить в систему даже в случае неправильной конфигурации, такой как эта (наиболее распространенной неправильной конфигурацией является разорванная общая библиотека в обычной оболочке).
Чтобы избежать подобных проблем в будущем, используйте команду chsh
для изменения оболочки пользователя, а не для непосредственного редактирования /etc/passwd
. Если необходимо отредактировать /etc/passwd
или какой-либо другой файл, связанный с получением доступа root, оставьте корневую оболочку открытой в терминале и не закрывайте ее до тех пор, пока не будет проверена возможность входа в качестве root.
Проверьте свою текущую оболочку с помощью
GREP '^ root:' / etc / passwd
Вы должны увидеть в конце строки полного пути к Shell, используемой пользователем root, вроде / bin / zsh
. Затем проверьте, отсутствует ли путь неправильно, файл существует и имеет правильные набор разрешений ( R
EAD и E x
ECUTE).
Если бы путь не был правильным, проверьте, где ваш исполняемый ZSH
помещен с
Тип ZSH
После этого SU
root, используя правильный путь оболочки, например, В случае / Bin / ZSH
:
SU -S / BIN / ZSH -
Наконец-то работает CHSH
, чтобы изменить оболочку по умолчанию на / Bin / ZSH