Временно время изменения

Я попробовал csh на OpenBSD. Я предполагаю свои работы в качестве примера также с tcsh.

Файл test.csh:

#!/bin/csh
source data.csh
echo $VARIABLE

Файл data.csh

#!/bin/csh
setenv VARIABLE 1234

Результат:

$ csh test.csh
1234
18
02.08.2013, 19:25
2 ответа

Существует названная библиотека libfaketime (также на GitHub), который позволяет Вам заставлять систему сообщить о данном времени Вашему приложению. Вы можете или иметь системный отчет установленное время на время выполнения программы или запустить часы в некоторое определенное время (например, 1:59:30). В основном Вы сцепляете faketime библиотеку в изображение своей программы в оперативной памяти через загрузчик библиотеки, и это получает и обрабатывает его собственным способом все системные вызовы, которые касаются системного времени. Это точно не изменяет системное время, но это изменяется, во сколько сообщается Вашему определенному приложению, не влияя ни на что больше, что работает, который является, вероятно, что Вы действительно, после (иначе, я вижу, никакие основания к не только не изменяют глобальное системное время).

Существует много возможных вариантов о том, как использовать его, но похоже на Изменение, во сколько процесс думает, что это с libfaketime, имеет довольно полный список наряду с примером кода для испытания их. Google должен также смочь раскопать некоторые примеры, учитывая, что Вы знаете, что искать.

Казалось бы, что это не доступно предварительно упакованный через репозитории RHEL, но например Debian обеспечивает его под именем пакета faketime. Это также выглядит прямым для создания из исходного кода (этому, по-видимому, даже не нужен a configure ступите или что-либо как этот).

24
27.01.2020, 19:46
  • 1
    Нет предварительной сборки этого ни в каком Fedora/CentOS/RHEL repos, который я мог найти. Существует этот об/мин, доступный здесь, но он должен будет быть восстановлен для CentOS. Жалость –  slm♦ 02.08.2013, 19:49
  • 2
    @slm, что, но не должно быть трудно создать из источника (сказал не попробовав). –  a CVn 02.08.2013, 19:50
  • 3
    Нет я просто сообщал всем для сохранения их от взгляда. Это выглядит довольно прямым. –  slm♦ 02.08.2013, 19:52

То, что я сделал бы, является первой установкой ntp сервис для синхронизации времени с удаленным сервером. Затем остановите сервис, вручную измените дату, игру вокруг и перезапустите сервис:

service ntpd stop
date -s "Aug 11 2012"
[ do stuff ]
service ntpd start
6
27.01.2020, 19:46
  • 1
    "Насколько я знаю, Вы не можете изменить время только для одного процесса, потому что это - вещь в масштабе всей системы". На самом деле Вы можете, способом; см. мой ответ. –  a CVn 02.08.2013, 19:45
  • 2
    @MichaelKjörling действительно, но мое знание во время записи не расширялся на Ваш ответ. Насколько я знал, что нет никакого пути :). –  terdon♦ 02.08.2013, 20:27
  • 3
    я отправил свой ответ приблизительно за 90 секунд перед регистрацией Вашего. ;) –  a CVn 02.08.2013, 20:41
  • 4
    @MichaelKjörling да, и я на самом деле отредактировал мой (Вы не видите его, это было сделано правильно после регистрации, когда я видел Ваш) добавить "насколько я знаю" :). –  terdon♦ 02.08.2013, 20:48

Теги

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