Я попробовал csh на OpenBSD. Я предполагаю свои работы в качестве примера также с tcsh.
Файл test.csh:
#!/bin/csh
source data.csh
echo $VARIABLE
Файл data.csh
#!/bin/csh
setenv VARIABLE 1234
Результат:
$ csh test.csh
1234
Существует названная библиотека libfaketime
(также на GitHub), который позволяет Вам заставлять систему сообщить о данном времени Вашему приложению. Вы можете или иметь системный отчет установленное время на время выполнения программы или запустить часы в некоторое определенное время (например, 1:59:30). В основном Вы сцепляете faketime библиотеку в изображение своей программы в оперативной памяти через загрузчик библиотеки, и это получает и обрабатывает его собственным способом все системные вызовы, которые касаются системного времени. Это точно не изменяет системное время, но это изменяется, во сколько сообщается Вашему определенному приложению, не влияя ни на что больше, что работает, который является, вероятно, что Вы действительно, после (иначе, я вижу, никакие основания к не только не изменяют глобальное системное время).
Существует много возможных вариантов о том, как использовать его, но похоже на Изменение, во сколько процесс думает, что это с libfaketime, имеет довольно полный список наряду с примером кода для испытания их. Google должен также смочь раскопать некоторые примеры, учитывая, что Вы знаете, что искать.
Казалось бы, что это не доступно предварительно упакованный через репозитории RHEL, но например Debian обеспечивает его под именем пакета faketime
. Это также выглядит прямым для создания из исходного кода (этому, по-видимому, даже не нужен a configure
ступите или что-либо как этот).
То, что я сделал бы, является первой установкой ntp
сервис для синхронизации времени с удаленным сервером. Затем остановите сервис, вручную измените дату, игру вокруг и перезапустите сервис:
service ntpd stop
date -s "Aug 11 2012"
[ do stuff ]
service ntpd start