Выполнение его с
strace -e trace=open,close,read,write,connect,accept your-command-here
вероятно, было бы достаточно.
Необходимо будет использовать -o
опция поместить вывод strace где-нибудь кроме консоли, если процесс может распечатать к stderr. Если Ваши ветвления процесса, Вам также будет нужно -f
или -ff
.
О, и Вы могли бы хотеть -t
также, таким образом, Вы видите, когда вызовы произошли.
Отметьте, Вы, возможно, должны настроить список вызова функции в зависимости от того, что делает Ваш процесс - я должен был добавить getdents
например, для получения лучшего демонстрационного использования ls
:
$ strace -t -e trace=open,close,read,getdents,write,connect,accept ls >/dev/null
...
09:34:48 open("/etc/ld.so.cache", O_RDONLY) = 3
09:34:48 close(3) = 0
09:34:48 open("/lib64/libselinux.so.1", O_RDONLY) = 3
09:34:48 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@V\0\0\0\0\0\0"..., 832) = 832
09:34:48 close(3) = 0
...
09:34:48 open("/proc/filesystems", O_RDONLY) = 3
09:34:48 read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 1024) = 366
09:34:48 read(3, "", 1024) = 0
09:34:48 close(3) = 0
09:34:48 open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
09:34:48 close(3) = 0
09:34:48 open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
09:34:48 getdents(3, /* 5 entries */, 32768) = 144
09:34:48 getdents(3, /* 0 entries */, 32768) = 0
09:34:48 close(3) = 0
09:34:48 write(1, "file-A\nfile-B\nfile-C\n", 21) = 21
09:34:48 close(1) = 0
09:34:48 close(2) = 0
Единственный метод, который я когда-либо слышал об этом, позволяет, Вы для воздержания от выполнения перезагрузки с помощью технологии KSplice.
выборка
Что такое Ksplice Uptrack?
Ksplice Uptrack позволяет Вам применить 100% важных обновлений системы защиты ядра, выпущенных Вашим поставщиком Linux без перезагрузки.
Ksplice Uptrack доступен для Oracle Linux, бесплатно, для Oracle клиенты Linux с Главной подпиской поддержки. Кроме того, любой может использовать Ksplice Uptrack бесплатно на Рабочем столе Ubuntu и Fedora.
Согласно веб-сайту это свободно для Fedora и Настольных пользователей Ubuntu:
выборка
Свободный для Fedora и рабочего стола Ubuntu.
Технология KSplice вышла на сцену в 2009, если не изменяет память, меня корректный. Впечатляющая демонстрация, которую использовали технологические разработчики, должна была переместить систему Linux через все Ядра Linux, которые когда-либо выпускались. Я никогда не видел демонстрацию, но то требование врезалось в мою память с тех пор.
Вот статья Ars Technica, которую я не забываю читать, названный: Ksplice: компьютеры Обновления без перезагрузки.
Наконец вот технический документ, который касается технологии и как это работает, названное: Ksplice: Автоматические Обновления Ядра Без перезагрузки.
Это не необходимо в том смысле, что Вы должны, это быть только необходимыми, если Вы хотите использовать новое ядро сразу же.
Просто обновление никогда не должно оставлять систему в состоянии, посредством чего необходимо перезагрузить после обновления. Одной очевидной причиной этого является большое системное обновление автоматически, и автоматическое обновление, которое завинтило рабочую систему, не будет цениться многими пользователями.
Необходимо? Да, если Вы хотите новое ядро. Но это может работаться вокруг? Да также. Но затем, почему нам нужна перезагрузка для обновления ядра? Поскольку Вы не перезагружаете ни для чего больше! Теперь, для обходного решения необходимо знать, что некоторая странность может (и быть), происходят.
Да, для использования обновления ядра обычно необходимо перезагружать систему. Иногда это могло быть достаточно, для перезагрузки модуля ядра - но это трудно решить.
При помощи kexec можно сократить время, система не доступна.
Ksplice предлагает для некоторого ядра дистрибутивов живое исправление.