Linux Mint 17, Ваша сессия продлилась меньше чем 10 секунд?

Удаление обратных галочек заставит программу работать, но не полностью из-за причин, уже определенных. Это верно это wait сбои сразу, потому что это работает в подоболочке и не может получить доступ к процессам своего родителя, но программе, не работали бы как ожидалось даже при использовании команды, которая действительно работала.

if оператор запускает программу и проверяет, является ли ее статус выхода нулем или ненулевой. При использовании обратных галочек, если оператор возьмет вывод процесса, попытайтесь выполнить его как программу и затем использовать код выхода для того процесса. Таким образом, программа не перестала работать потому что wait сбои, а скорее это перестало работать потому что wait не производит вывода.

Можно заставить сценарий работать при помощи echo в обратных галочках:

if `echo wait $!`; then
    echo success
else
    echo failure
fi

Или просто удалите обратные галочки; легче для всех.

4
13.04.2017, 15:36
5 ответов

Это логический оператор, который равен логическому , а не .

Смотрите man bash :

! выражение
True, если выражение имеет значение false.

В вашем примере, если нет foo , эхо бла .

-121--51411-

Я нашел это:

https://aur.archlinux.org/packages/xf86-input-evdev-debounce/

после гуглинга для «linux xinput mouse debounce»

Я не буду его тестировать. Прошло много времени с тех пор, как вы спросили, но, возможно, у кого-то та же проблема с любимой мышкой, так что вот она. Кроме того, я не пользователь Arch; но они действительно раскачиваются!

-121--26500-

Некоторые исполняемые файлы отсутствуют в системе или не могут быть найдены из-за неправильного PATH:

- python3 , поэтому /usr/lib/command-not-found не может быть выполнен. - cat (/bin/cat ), из-за чего command-not-found выполняется - id (/usr/bin/id ), как используется в стандартном /etc/profile

Первый - это ссылка и ее доступность несколько меньше необходимости. Попробуйте использовать ls для проверки доступности этих двух последних команд ( ls -l/bin/cat/usr/bin/id ). Если у вас нет этих файлов, вы можете попытаться переустановить их, но поскольку они такие базовые, ваша система может быть не в состоянии сделать даже это. Для установки обеих команд используется команда apt-get install coreutils , но, чтобы повторить, система, возможно, больше не сможет этого делать.

Если эти файлы есть, проверьте ПУТЬ и место, где может быть набор его значение, чтобы он больше не включал /usr/bin и/или /bin .

Если этих файлов нет, возможно, вы удалили их как корневые, деинсталляция основных утилит затруднена из-за их многочисленных зависимостей.

2
27.01.2020, 20:58

Операция переименования выполняется очень быстро в любой файловой системе, поэтому она вряд ли будет прервана, но в классической файловой системе она, безусловно, может быть прервана - если он сначала создает ссылку назначения, то может оставить две ссылки в файле - что является законным, но файл считает, что он имеет только один, что может вызвать проблемы, если он будет удален позже. С другой стороны, если сначала удалить исходную ссылку, файл может быть потерян. Выполнение команды fsck обычно обнаруживает и исправляет любое условие, хотя если файл потерян, он будет помещен в «lost + found» каталог с произвольным именем, а не в нужном расположении - и если он имеет две связи, счетчик ссылок будет просто обновлен, так что файл будет существовать в двух расположениях, если файловая система поддерживает это.

Если файловая система необходима для обеспечения надежности в случае сбоя питания, следует использовать файловую систему ведения журнала , например NTFS, EXT3 или XFS. В большинстве современных систем по умолчанию используется файловая система ведения журнала, хотя следует помнить, что FAT не является файловой системой ведения журнала, если она используется для внешних дисков.

Файловая система ведения журнала использует систему «двойной записи» - она записывает в файл журнала тот факт, что намерена переместить его, а затем выполняет перемещение. Когда файловая система будет проверена при запуске, если она была прервана, она заметит, что перемещение не было завершено, и повторит его тогда.

Существует два типа файловых систем ведения журнала - ведение журнала метаданных и полное ведение журнала. Ведение журнала метаданных означает, что он не отслеживает изменения содержимого файла в системе журналов (таким образом, вы можете потерять содержимое при записи в файл), но он по-прежнему будет треком важную информацию файловой системы, такую как содержимое каталога, свойства файла и т.д.


Когда люди говорят об атомной операции переименования, это означает, что она не может наблюдаться в середине перехода другим процессом в системе, и она не может быть оставлена наполовину завершенной, например, прерывая саму команду mv с помощью ^ C . Физический процесс записи в каждый каталог, место хранения которого может находиться в различных местах на диске, не может быть действительно атомарным на аппаратном уровне.


Для полноты описания, я отмечу, что есть также некоторые случайные операции ввода-вывода, связанные с переименованием в дополнение к созданию новой ссылки в конечном каталоге и удалению ее в старом - обновление времени mtime обоих каталогов, возможно, увеличение размера выделения целевого каталога, изменение .. и счетчики ссылок родительских каталогов, если файл является каталогом. Кроме того, я не уверен, влияет ли на время существования самого файла.

-121--32140-

Единственными контроллерами SAS, которые я когда-либо использовал, были контроллеры LSI. Они мне нравятся за их качество и производительность, а также за их обширную диагностическую информацию.Я рассмотрел все остальные драйверы SAS в ядре Linux и ни один из них не предоставляет ничего, что даже близко к тому, что имеет LSI.

Не вся эта диагностическая информация задокументирована, и некоторые из них похоронены, но, по крайней мере, вы можете позвонить в службу поддержки LSI, и они смогут рассказать вам больше о проблеме.

Одним из примеров являются коды log_info, которые дают более глубокую информацию об ошибках ввода-вывода, и некоторые из них поддаются декодированию (я написал инструмент для этого, чтобы упростить мою жизнь), не все из них открыто документированы, поэтому некоторые коды нужно спросить о поддержке LSI. Есть также mptevents, которые можно отследить, чтобы найти, что происходит на карте SAS и коды неисправностей, которые говорят вам, что произошло, когда карта блокируется. Существуют также журналы отладки, которые может генерировать плата, и они могут регистрироваться и анализироваться с помощью поддержки LSI.

Никто больше не подходит даже близко к этому.

Мой опыт использования HBA-адаптеров SAS предназначен для жестких дисков и твердотельных накопителей в крупных корпоративных системах места хранения, где я являюсь специалистом по программному обеспечению, но часто перед мной ставится задача понять проблемы оборудования. Вся вышеуказанная диагностика - единственная причина, по которой мы можем с легкостью разобраться в большинстве проблем, потратив время на изучение темы.

-121--229683-

У меня была та же самая проблема , и я нашел решение .

Существует много других вариантов того, что я называю

«10 второй» выпуск.

Моя ситуация была именно члеба. Я не мог ничего сделать. Я нажал < ctrl > + < alt > + < F1 > и вошел в tty1 и вошел в систему под именем root. Тем не менее, я все еще мог эхо $ PATH , что дало мне то, что я изменил (испортил) вчера. Затем я выполнил

экспорт PATH = $ PATH :/home/[ StartDirectory ]/bin :/usr/local/sbin :/usr/local/bin :/usr/sbin :/usr/bin :/sbin :/bin :/usr/games .

(^ Извините за дрянное форматирование. Источник: wikihow.com/Change-the-Path-Variable-in-Linux)

Теперь можно ls , cat , все это. НО ПОДОЖДИТЕ! Не выходите, нажав < ctrl > + < alt > + < F7 > ! Сначала необходимо изменить файлы ~/.bashrc и ~/.profile , чтобы временно объявить, к каким каталогам система должна иметь прямой доступ. Если вы похожи на меня, вы можете не иметь ~/.bashrc в вашем каталоге. Кроме того, если вы вошли в систему как root, или вы ввели свое «имя пользователя» или что-либо в качестве «root», то вам придется cd/home/[ StartDirName] , чтобы попасть туда. Если вы вошли с обычными полномочиями, вы можете просто cd ~ , и вы будете там, где мы хотим быть. Отсюда запустите nano.profile или sudo nano.profile и в самом низу добавьте export PATH = $ PATH: ... все те же вещи, что и выше. Затем запустите [sudo] nano.bashrc , который создает файл .bashrc , если он еще не существует (что было для меня), и просто вставьте в тот же ol ' export PATH = $ PATH:... вещи.

Теперь вы должны быть хороши.

Дополнительные вкусности

Всем нравятся дополнительные вкусности.

  1. Моя ставка заключается в том, что вы все еще можете запустить ls и apt-get и т.д. Для их выполнения необходимо просто перейти к /etc/bin или выполнить ./etc/bin/ls.sh или что-то подобное. Я на самом деле не знаю, где находятся кореутили, но это выглядело бы примерно так.

  2. В Linux Mint 17, согласно моему отцу и этой , ваша переменная $ PATH расположена по адресу /etc/environment . Так что вы можете просто изменить это, что может не быть временным исправлением. Если у вас есть время взглянуть на это, бросьте комментарий о том, является ли это временным исправлением. Просто создайте сценарий оболочки в каталоге Downloads и вставьте : ~/[ startDirName ]/Downloads в конце объявления $ PATH в файл среды и проверьте, можно ли запустить сценарий оболочки так: cd ~ ./[ shellscriptname] .

  3. К пути я попал в этот беспорядок, пытаясь добавить ярлыки в сценарии и приложения, разбросанные по всей системе .

0
27.01.2020, 20:58

Я думаю, может быть много причин эта проблема, но я подумал, что поделюсь своим решением. В моем случае это было просто из-за синтаксической ошибки в моем файле ~ / .profile , где-то в основном отсутствовал один знак "=". Я исправил это, перейдя в режим восстановления и в корневую подсказку. Затем я обновил файл, перезагрузился, и все заработало.

Так что это может быть что-то, чтобы проверить, есть ли у вас эта ошибка. Если вы недавно изменили файл .profile, проверьте его.

1
27.01.2020, 20:58

Я столкнулся с той же проблемой с ubuntu-7.10. На моей виртуальной машине каким-то образом изменилось разрешение «/ tmp». Чтобы решить эту проблему, я изменил права доступа "/ tmp" на 777.

После этого я смог успешно войти в систему как обычный пользователь. Это может помочь предположить вашу проблему такой же, как у меня.

0
27.01.2020, 20:58

Причина

У меня была такая же проблема. Кажется, могут быть разные причины этой проблемы, но для меня это был неверный путь PATH, как описано ниже.

Я установил Oracle JDK, а затем установил JAVA_HOME и PATH в каталоги, в которых был установлен JDK. то после их удаления я просто забыл удалить эти изменения переменных среды из файла / etc / environment.

Решение

После входа в систему с помощью alt + ctrl + f2 я установил ПУТЬ на:

export PATH="/bin:/usr/bin" 

Затем я перешел в etc / environment и с помощью:

sudo nano environment 

смог удалить изменения.

0
27.01.2020, 20:58

Теги

Похожие вопросы