原文: 鸭嘴的Blog
偶参阅了网上资料加了注释.
<?php
define("PID_PATH", "/tmp/delSmartyCache.pid");
global $argv;
$cmd = $argv[1];
switch($cmd) {
case 'start' :
do_work();
break;
case 'stop' :
do_stop();
break;
case 'status' :
show_status();
break;
default :
show_usage();
break;
}
function do_work()
{
// 创建子进程(守护进程)
$newid = pcntl_fork();
if ($newid == -1) {
echo "pcntl_fork error\n";
exit;
}
if ($newid) { // 返回值大于0, 表示创建成功, 提示信息并结束父进程
echo "process delSmartyCache start successfully\n";
exit;
} else { // 返回值为0, 表示父进程结束后进入子进程的运行阶段
// 取当前进程(子进程)的PID, 并写至进程文件
$pid = posix_getpid();
$fp = fopen(PID_PATH, "w");
fwrite($fp, $pid);
fclose($fp);
while (true) {
$cmd = "rm -rf /elink/bbs_data/smarty/tmpl_c/*";
$re = popen("$cmd", "r"); // 打开一个指向删除进程的管道
$ret = fread($re, 1024);
if ($ret != "") {
// 将执行情况写入日志
$fp = fopen("/home/dexin/run_delSmartyCache.log","a+");
fwrite($fp, $ret);
fclose($fp);
}
// 延时6秒
sleep(6);
}
}
}
// 停止守护进程
function do_stop()
{
if (file_exists(PID_PATH)) {
// 读取守护进程PID
$fp = fopen(PID_PATH, "r");
$pid = fread($fp, 10);
// 退出守护进程
$ret = posix_kill($pid, SIGQUIT);
if ($ret === true) {
echo "process delSmartyCache stopped successfully\n";
} else {
echo "fail stop process delSmartyCache\n";
}
} else {
echo "process delSmartyCache not found\n";
}
}
// 使用说明
function show_usage()
{
print
<<<EOF
Usage:
php delSmartyCache.php <option>
Options:
start - Start the daemon
stop - Stop daemon
status - show the delSmartyCache daemon
help - Show help
EOF;
}
// 显示状态
function show_status()
{
if (file_exists(PID_PATH)) {
$fp = fopen(PID_PATH, 'r');
$pid = fread($fp, 10);
$ret = posix_kill($pid, 0); // 发送信号判断进程是否存活
if($ret === true) {
echo "process delSmartyCache is alive\n";
exit;
} else {
echo "process delSmartyCache is down\nplease start the process\n";
exit;
}
} else {
echo "pid file not exists\n";
exit;
}
}
分享到:
相关推荐
使用Smarty缓存时,只需在模板文件中添加`{cache}`标签,例如`{cache id='uniqueCacheId'}...{/cache}`,其中的`id`用于唯一标识缓存。缓存内容会自动保存,并在下一次请求时直接使用,无需重新生成。清除缓存可以...
以上就是Smarty 2.6.26版本中的局部缓存方法和自定义生成静态文件的实践。通过合理使用这些功能,可以显著提升网站的性能和用户体验。但需要注意,缓存策略应根据具体应用和数据更新频率来调整,以确保数据的实时性...
这个"Smarty 3 文件包"包含了用于搭建和运行Smarty 3环境的所有必要组件。 Smarty 3 的核心特性包括: 1. **模板和PHP分离**:Smarty 的设计原则是让开发者专注于PHP代码处理数据,而设计师则可以使用HTML、CSS和...
1、Smarty缓存的配置 $smarty->cache_dir = "/caches/"; //缓存目录 $smarty->caching = true; //开启缓存,为flase的时侯缓存无效 $smarty->cache_lifetime = 60; //缓存时间2、Smarty缓存的使用和清除 $...
### Smarty缓存部分参考知识点 #### 一、使用缓存 在使用Smarty模板引擎时,启用缓存功能是一项重要的优化措施。为了启动缓存机制,首先需要设置`$smarty->caching = true;`,这将告诉Smarty是否开启缓存功能。...
软件介绍 1、Smarty缓存的配置 $smarty->cache_dir = "/caches/"; //缓存目录 $smarty->caching = true; //开启缓存,为flase的时侯缓存无效 $smarty->cache_lifetime = 60; //缓存时间 2、Smarty缓存的...
SMARTY提供了clearCache方法用于删除特定的缓存实例。如果不提供特定的模板文件名和参数,那么将清除整个缓存目录下的所有缓存文件。示例代码如下: ```php $Smarty->clearCache('01.html', $goods_id) ``` 有时候在...
描述中的“.rar”文件可能包含了PPT演示文稿和视频教程,其中`第30讲.ppt`可能是关于Smarty缓存的详细讲解,包括原理、配置、使用方法和最佳实践;`php100-30.wmv`则可能是一个视频教程,通过实例演示如何在实际项目...
Smarty的配置允许开发者自定义模板目录、编译目录、缓存策略等。例如,`$smarty->setTemplateDir('templates')`设置模板目录,`$smarty->setCompileDir('templates_c')`设置编译目录。 四、Smarty缓存 Smarty有内置...
本文将详细介绍Smarty的缓存机制及其用法。 ### 一、开启和使用Smarty缓存 要启用Smarty的缓存功能,首先需要在初始化Smarty对象时设置相关参数。在配置文件或脚本中,可以这样设置: ```php $smarty = new ...
在这个案例中,你已经拥有名为"Smarty-3.0.7"的压缩文件,这应该包含所有必要的文件。 2. **解压并放置目录**:将下载的压缩包解压到你的PHP项目中。通常,人们会创建一个`libs`或者`vendors`目录,然后将Smarty的...
Smarty的缓存管理策略非常灵活,可以通过设置缓存生命周期(即缓存多久后失效)、缓存依赖(当关联的某些文件或数据改变时自动清除缓存)等来控制。此外,Smarty还支持缓存前/后处理器,允许在内容缓存生成前后执行...
smarty模板文件更新core.write_file.php文件,解决无法生成编译文件的问题
5. 缓存机制:Smarty允许对模板结果进行缓存,提高页面加载速度,但同时也提供了动态更新缓存的机制,以保持数据的实时性。 三、Smarty的配置和设置 在使用Smarty时,需要先实例化一个Smarty对象并进行配置。常见的...
6. **缓存机制**:Smarty提供了缓存功能,可以将渲染后的模板结果存储起来,避免每次请求都重新计算。这对于提升网站性能非常关键,特别是在数据不变但渲染过程较慢的情况下。 7. **预编译**:Smarty 3.0支持模板预...
在下载并安装Smarty最新版后,开发者需要按照官方文档或示例代码进行配置,然后在PHP代码中实例化Smarty对象,加载模板文件,填充变量,并渲染输出。这样,就可以利用Smarty的强大功能,构建出高效、易维护的Web应用...
3. **缓存机制**:Smarty具备强大的缓存功能,可以缓存编译后的模板,减少不必要的重复编译,提高网站的响应速度。开发者可以通过配置控制何时更新缓存。 4. **安全特性**:为了确保模板的安全性,Smarty提供了多种...
这个"Smarty中文手册 双语版"为开发者提供了详尽的参考信息,帮助理解和使用Smarty框架。 Smarty的核心概念包括以下几个方面: 1. **模板(Template)**:模板文件通常包含HTML,以及一些Smarty语法,如变量、控制...
6. **配置管理**:Smarty允许开发者通过配置文件来设置各种参数,如模板目录、编译目录、缓存目录等,使得项目的配置更加灵活。 7. **安全控制**:为了防止模板被恶意篡改,Smarty提供了安全模式,可以限制模板中...
6. **配置文件**:配置文件用于设置Smarty的全局属性,如模板目录、编译目录等。配置可以通过`config_load`函数加载,并在模板中使用`{config_load}`访问配置变量。 7. **控制台调试**:Smarty提供了一套调试工具,...