В большинстве случаев она должна работать.
Если этот способ неприемлем, то вам следует перейти на lockfile. Или даже просто наблюдать за процессом через [1181781]ps[1181782] (lockfile лучше).[1181395].
Никогда не слушайте тех, кто говорит вам, что вы не можете сделать что-то в linux, именно поэтому я больше не использую окна.: P
Во-первых, включите non free repos. Путем добавления « non-free
» в файл «/etc/apt/sources.list
».
Затем выполните следующие команды:
sudo apt-get update
sudo apt-get install broadcom-sta-*
sudo modprobe wl
echo "wl" | sudo tee -a /etc/modules
Не забудьте -a в команде tee, иначе вы перезапишете весь файл!!
Если он не работает сразу, перезагрузитесь и это должно быть нормально.
http://ubuntuforums.org/showthread.php?t=2205494
https://packages.debian.org/jessie/all/broadcom-sta-common/download
http://forums.linuxmint.com/viewtopic.php?f=194&t=175030
-121--43880-Попробуйте:
find -iname "*.txt" -exec sh -c 'for f do basename -- "$f" .txt;done' sh {} +
Не удалось выполнить первую команду, так как $ (...)
выполняется в субоболочке, в которой {}
рассматривается как литерал. поэтому basename {} .txt
возвращает {}
, find
становится
find . -iname "*.txt" -exec echo {} \;
, имя файла печати которого совпадает.
-121--84527- Запуск программы в фоновом режиме путем добавления и
в конце подобен запуску приложения, свернутого в Windows или Mac. И использование команды fg
аналогично восстановлению его на рабочем столе.
Для сравнения, при нажатии ctrl + z
во время выполнения программы ее выполнение приостанавливается. Это означает, что он не сможет завершить то, что делает, и будет отправлен в фоновый режим.
Кроме того, программы привязаны к текущему сеансу, поэтому при выходе из терминала все программы, выполняющиеся или приостановленные в фоновом режиме, также завершатся.
Я сделал некоторую глупую ошибку по математике в коде Python?
На самом деле, это ваш C-код, который не так.
Наиболее прямое исправление к вашему коду является это:
#include <stdio.h>
#include <sys/sysctl.h>
int main(void)
{
int64_t bytes;
size_t len = sizeof(bytes);
sysctl({ CTL_HW, HW_PHYSMEM64 }, 2, &bytes, &len, NULL, 0);
int megs = bytes / 1024 / 1024;
printf("AMT MEM: %d MiB\n", megs);
}
, если вы используете вместо этого
HW_PHYSMEM
, он работает только на машинах до 2 Гибра ОЗУ, поскольку он хранит количество байтов в Предполагается, что переменная составляет 32 бита в размерах. Изменение на 64-битный аргумент требует нового значения SYSCTL
, чтобы избежать нарушения обратной совместимости. Вот почему Sysctl (3) Page Sysctl (3)
HW_PHYSMEM
устарели.
Я сделал несколько свобод в коде выше. Я делаю часть математики в C Code Code, чтобы я мог прочитать вывод, не подавая его через калькулятор. ¹ Я также фиксировал несколько предупреждений типа целочисленных типов и переименовал изменение NUM_
для байтов
Для ясности.
Этот код работает нормально на некоторых BSDS, ², но не на OS X или FreeBSD.
На просмотре на странице человека OS X кажется, они хотят, чтобы вы использовали SysctlbyName (3)
вместо этого. Это хорошо работает здесь на Yosemite:
#include <stdio.h>
#include <sys/sysctl.h>
int main(void)
{
int64_t bytes;
size_t len = sizeof(bytes);
sysctlbyname("hw.memsize", &bytes, &len, NULL, 0);
int megs = bytes / 1024 / 1024;
printf("AMT MEM: %d MiB\n", megs);
}
У меня 16 Gib физической оперативной памяти, и он правильно сообщает 16384 MIB.
Если вы попробуете это на FreeBSD, вы получаете 0 как ответ. Немного покисляя вокруг говорит, что он хочет HW.Physmem
вместо этого.
И еще раз мы ударили стену, потому что пытаясь , что SYSCTLBYNAME
значение на ОС X дает рода поддельных результатов, которые вы найдете.
Следовательно, нижний ответ - это то, что все это очень конкретно. Если вам нужно, чтобы он был перекрестной платформой, вам понадобится много #ifdefs
.
Сноски:
Извините, у меня нет моих полномочий 2 запомнится в миллиарды. :)
Испытано на OpenBSD 5.5 и NetBSD 6.0.1.
Большинство команд, выданных из интерактивной оболочки в переднем плане на переднем плане . Что в основном означает, что вы должны дождаться выполненной команды (или процессора), чтобы остановиться, прежде чем делать что-то еще. Для длинных / сложных программ или сценариев альтернатива - это запустить их в фоне . Это означает, что вы можете продолжать работать, а длинная программа выполняется.
Ampersand &
В конце команды это делает это. Вы также можете использовать Ctrl-Z, чтобы приостановить команду переднего плана и бросить ее в фоновом режиме с помощью команды BG
.
После этого вы можете управлять этими фонами задачами ( заданиями
команда ), убить их и т. Д. команда
Обратите внимание, что справочная команда не отключается от вашего TTY: могут быть некоторые случаи Когда фоновая команда ждет пользовательского ввода (см. fg
, чтобы вернуть работу на передний план). Если вы заканчиваете свой терминальный сеанс (через закрытие терминала, выйти, выключение и т. Д.), могут быть убиты фоновые задания (см. NOHUP
для более подробной информации).
простыми словами,
Каждый процесс, который вы запускаете, выполняется на переднем плане. Он получает свой ввод с клавиатуры и отправляет его вывод на экран.
$ls ch*.doc
, в котором перечислены все файлы в текущем каталоге,
Фоновый процесс выполняется без подключения к клавиатуре. Если фоновый процесс требует ввода с клавиатуры, он ждет. Преимущество запуска процесса в фоновом режиме заключается в том, что вы можете запускать другие команды; вам не нужно ждать, пока он завершится, чтобы запустить другой!
Самый простой способ запустить фоновый процесс - добавить амперсанд ( &) в конце команды.
$ls ch*.doc &
некоторые приведенные ниже ссылки помогут вам
https://stackoverflow.com/questions/8938058/background-process-vs-foreground-process
http://linux.about.com/cs/linux101/a/multitasking.htm
https://stackoverflow.com/questions/6573249/difference-between-foreground-job-and-background-job