Сначала необходимо проверить, подключен ли процесс к терминалу.
$ ps -eo comm,tty | grep fsck
Теперь, если вы по-прежнему можете видеть значение TTY рядом с вашим процессом, вы по-прежнему можете получить его вывод (из этого TTY). Текущий идентификатор TTY можно получить с помощью tty
. Однако, если рядом с вашим процессом есть ?
, боюсь, вы не сможете получить его вывод в любом случае (если вы не использовали что-то вроде экрана
).
Если процесс все еще подключен к работающему терминалу, можно вернуть процесс на передний план с помощью fg
(в этом терминале, конечно):
$ jobs
$ fg [job ID]
задания
выдадут идентификатор, связанный с запущенным процессом fsck.ext4
. Затем используйте его при вызове fg
. Можно также вызвать fg
без аргументов, если в фоновом режиме имеется только одно задание.
Я не знаком с fsck.ext4
, но используемый вами переключатель -t
, похоже, печатает статистику (отредактируйте: также как и параметр -C 0
). Вернув процесс на передний план, вы получите этот вывод обратно. Однако, если fsck.ext4
не был запущен с подробными параметрами, он не будет печатать ничего, независимо от того, находится ли он на переднем плане или в фоновом режиме. В этом случае можно просто проверить, выполняется ли он по-прежнему с помощью ps
.
Когда вы закончите, просто нажмите Ctrl + Z , чтобы снова отправить процесс в фоновом режиме. Будьте осторожны, если процесс подключен к терминалу (то есть, если программа принадлежит сеансу управления терминала), то закрытие терминала отправит SIGHUP
процессу и убьет его (если только вы не заставили fsck.ext4
игнорировать SIGHUP
).
-121--139948-
Следующее, кажется, работает просто хорошо в моем sh
:
$ myvar="test"
$ echo "My var is $myvar."
My var is test.
Нет необходимости эхо
значение переменной и поймать его снова в другой. Вот немного больше информации о назначениях переменных .
Объект , OSTYPE
не определен в среде sh
. Вам придется передать его при выполнении сценария. Так что, вместо того, чтобы бежать...
$ /bin/sh yourscript.sh
or
$ ./yourscript.sh
Необходимо выполнить:
$ OSTYPE=$OSTYPE /bin/sh yourscript.sh
or
$ OSTYPE=$OSTYPE ./yourscript.sh
Конечно, предполагается, что родительская оболочка, в которой вводится приведенная выше команда, имеет переменную OSTYPE
. В то время как bash
делает, это не случай каждой оболочки. Вместо $ OSTYPE
можно использовать uname
:
$ OS=$(uname -o)
$ echo "My OS is $OS."
My OS is GNU/Linux.
$ echo "My OS is $(uname -o)."
My OS is GNU/Linux.
На моей машине для переменной OS
устанавливается значение GNU/Linux
, а не linux-gnu
(которое является содержимым моего OSTYPE
).
В качестве побочной заметки я предполагаю, что эквивалент вашего кода может быть:
$ myvar="$(echo $OSTYPE)"
$ echo "My var is $myvar."
My var is linux-gnu
-121--244812-
Основная причина заключается в том, что распакованный образ при загрузке расширится сам собой,но где?
Если бы он находился в ОЗУ, компьютер мог бы его не хватить, чтобы сделать так. Но если бы это было сделано на USB ключ сам на ext4 раздел, «образ» не будет больше нетронутым, так как файл написаны на том же разделе.
Что еще хуже, некоторые изменения могут сделать изменения постоянными, что не нужно делать на изображении.
Помогло бы указать здесь вашу папку /etc/apt/sources.list.d/
.
Чтобы проверить, обновлен ли ваш текущий репозиторий пакетом, который вы хотите установить, запустите apt-cache search openjdk-7-jdk
, если вы не видите никакого списка, значит у вас устаревший репозиторий на ваша машина.
Вариант A: Получите соответствующий репозиторий для openjdk
и добавьте его в свой sources.list
или лучше создайте новый файл внутри /etc/apt/sources.list. d /
.
Вариант B: попробуйте установить Oracle java, он более стабилен и поддерживает больше, чем openjdk
Как указано в комментариях, система использует systemd для управления услугами. Systemd является заменой традиционной SysVinit. Он также содержит множество других элементов, таких как сборщик системных журналов. В этом случае для получения доступа к журналам необходимо использовать команду journalctl
.
$ journalctl
Если требуется просмотреть только журналы sshd
, можно пройти фильтр:
$ journalctl -n 1 _COMM=sshd
-- Logs begin at Wed 2014-10-22 19:29:29 EDT, end at Fri 2014-10-24 09:05:09 EDT. --
Oct 24 09:05:09 gadget sshd[5800]: pam_unix(sshd:session): session closed for user phemmer
Доступные поля фильтра можно просмотреть, изменив формат вывода на подробный
:
$ journalctl -n 1 -o verbose
Fri 2014-10-24 09:05:09.533633 EDT [s=30566909a26443ffb7185d318ccc4cd6;i=3d5d;b=19dd64e325fd4577a78af1a73f005b6c;m=1e82168a3c;t=5062ad4a511bc;x=1fae374af8a7dbc3]
PRIORITY=6
_UID=0
_GID=0
_BOOT_ID=19dd64e325fd4577a78af1a73f005b6c
_MACHINE_ID=5288dcb47f9fed3ab946f54754305a4f
_HOSTNAME=gadget
_CAP_EFFECTIVE=1fffffffff
_TRANSPORT=syslog
SYSLOG_FACILITY=10
SYSLOG_IDENTIFIER=sshd
_COMM=sshd
_EXE=/usr/sbin/sshd
_SYSTEMD_OWNER_UID=1000
_SYSTEMD_SLICE=user-1000.slice
_PID=5800
_CMDLINE=sshd: phemmer [priv]
_SYSTEMD_CGROUP=/user.slice/user-1000.slice/session-3.scope
_SYSTEMD_SESSION=3
_SYSTEMD_UNIT=session-3.scope
MESSAGE=pam_unix(sshd:session): session closed for user phemmer
_SOURCE_REALTIME_TIMESTAMP=1414155909533633
Для ответа на комментарий об отключении systemd. Я бы не советовал. Ваше распределение движется в сторону systemd, и разрыв основного компонента системы, вероятно, сделает вашу жизнь чрезвычайно сложной.
Можно было бы отключить только журнал журнала и использовать традиционный демон системного журнала, без лишней боли, но я бы рекомендовал научиться использовать журнал, прежде чем принимать решение не использовать его. Идти против конвенции не следует легкомысленно.
В /etc/systemd/system
вы найдете symlink , default.target
. В настоящее время это указывает на /usr/lib/systemd/system/graphical.target
(это можно увидеть с помощью readlink default.target
.
В качестве корня (или через sudo) удалите symlink и замените его:
rm default.target
ln -s /usr/lib/systemd/system/multi-user.target default.target
Дважды проверьте, что введите default.target
. Он должен сказать «символическая ссылка на»..., а не « сломанная символическая ссылка на»... в этом случае вы ввели цель неправильно, начать снова. Также двойная проверка вы получили имя правильно, default.target
- все это важно для правильной перезагрузки системы.
Теперь можно перезагрузиться и перейти к консоли вместо диспетчера дисплея. Для возврата к учетной записи GUI отмените указанный выше процесс.
-121--20350-Не беспокойтесь об установке через apt. Просто загрузите пакет JDK непосредственно из Oracle и загрузите сценарий из
БОЛЬШЕ НЕДЕЙСТВИТЕЛЬНАЯ ССЫЛКА: http://1drv.ms/1woCbS5
и вставьте его в текстовый редактор и сохраните как файл .sh
. Затем необходимо сделать файл исполняемым с помощью chmod 755 filename.sh
. Если у вас есть какие-либо сомнения, пожалуйста, прокомментируйте.
Я получил этот код от https://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre .
Но поскольку он содержал JDK 7, я попал в JDK8. Убедитесь, что папка /usr/lib/jvm
удалена с помощью rm -rf jvm-folder-path
.
Проблема заключается в том, что переменная окружена двойными кавычками («»). Уберите его, и все будет хорошо.
VAR="This displays with \
extra spaces."
echo ${VAR}
Вывод
This displays with extra spaces.
Проблема заключается в том, что двойная кавычка переменной сохраняет все символы пробела. Это можно использовать в случае явной необходимости.
Например,
$ echo "Hello World ........ ... ...."
напечатает
Hello World ........ ... ....
А при удалении кавычек другой
$ echo Hello World ........ ... ....
Hello World ........ ... ....
Здесь Bash удаляет лишние места в тексте, потому что в первом случае весь текст принимается как «единственный» аргумент и, таким образом, сохраняет лишние места.
Но во втором случае команда echo
получает текст в качестве 5 аргументов.
Цитирование переменной также будет полезно при передаче аргументов командам.
В приведенной ниже команде echo
получает только один аргумент как «Hello World»
$ variable="Hello World"
$ echo "$variable"
Но в приведенном ниже сценарии echo
получает два аргумента как Hello
и World
$ variable="Hello World"
$ echo $variable
-121--7324- Порт 443 HTTPS. Выходные данные netstat
:
tcp6 0 0 [::]:https [::]:* LISTEN
Ясно, что процесс прослушивает 443 порта. Чтобы подтвердить, является ли указанный выше процесс процессом Apache (httpd), необходимо выполнить команду как root. Вместо этого используйте ss
, поскольку netstat
устарел:
# ss -tlnp
-121--52602- Я не совсем уверен в этой проблеме, но похоже, что ваши зависимости разорваны или список пакетов устарел.
1) Попробуйте обновить список пакетов:
sudo apt-get update
2) И проверьте свои зависимости:
sudo apt-get check
3) Есть ли некоторые нарушенные зависимости:
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get remove
sudo apt-get autoremove
4) Вернуться к шагам 1) и 2)
Если они все еще не работают, попробуйте найти и установить пакет из Synaptic package manager.
Вы также можете использовать репозиторий WebUpd8 :
Сначала обновите свою систему:
sudo apt-get update
sudo apt-get upgrade
И если нет проблем, вы можете добавить этот репозиторий :
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
Это также добавит JAVA_HOME в ваш PATH.