在 Linux 下使用 root 权限强制踢掉其他用户
在 Linux 系统中,作为 root 用户,您可以强制踢掉其他用户的会话。以下是几种常用的方法来实现这一操作。 1. 使用 pkill 命令pkill 命令可以根据用户名终止所有与该用户相关的进程。 示例sudo pkill -u username 将 username 替换为您要踢掉的用户的用户名。这将结束该用户的所有会话。 2. 使用 kill 命令您还可以通过 ps 命令列出用户的进程,然后使用 kill 命令逐个终止这些进程。 步骤 列出用户的进程: ps -u username 使用 kill 命令终止进程: sudo kill -9 PID 将 PID 替换为要终止的进程的进程 ID。您可以使用 killall 命令来一次性终止所有进程: sudo killall -u username 3. 使用 logout 命令如果用户通过 SSH 登录,您可以使用 pkill 或 kill 命令终止 SSH 会话。 示例sudo pkill -u username 这将结束所有与该用户相关的 SSH 会话。 4. 使用 who 和 w 命令您可以使用 who ...
Redis抛错:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to...
Redis 持久化问题 MISCONF Redis is configured to save RDB snapshots 昨天跑了一宿的swoole 服务 今天来公司看日志 全是报错: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error. 究其原因是因为强制把redis快照关闭了导致不能持久化的问题,在网上查了一些相关解决方案,通过stop-writ...
PHP 实例化对象注销
诶呀 , 这个问题说出来有些傻X , 但不测试一下. 写程序心里还是发慌.PHP的内存回收原理, 不多说了 自己看手册. 就是个引用计数器, 变量上没有数量就回收了.对象也是一样, 当你实例化的对象赋值到变量上, 这个对象的引用关系就赋值到变量上了. 如果重新赋值对象变量, 原有对象也就没有计数了, 也就被注销了. 举个栗子: <?phpclass Obj { public function __construct() { echo __FUNCTION__, PHP_EOL; } public function __destruct() { echo __FUNCTION__, PHP_EOL; }}$data = new Obj();$i =0 ;do { if ($i > 3) { $data = []; // 注销对象 unset 也 ok 只要计数归零 对象就会注销 (swoole 对...
Linux查看进程运行的完整路径
在 Linux 系统中,了解进程的运行状态和相关信息是系统管理的重要任务。查看进程的完整路径可以帮助我们更好地监控、调试和管理进程。本文将介绍几种在 Linux 中查看进程运行的完整路径的方法。 1. 使用 ps 命令ps(process status)命令是最常用的查看进程信息的工具。要查看进程的完整路径,可以使用以下命令: 1.1 显示所有进程的完整路径ps -eo pid,comm,args -e:显示所有进程。 -o:自定义输出格式。 pid:进程 ID。 comm:执行程序的名称。 args:启动进程时的完整命令行。 1.2 示例ps -eo pid,comm,args | grep nginx 这将显示所有与 nginx 相关的进程及其完整路径。 2. 使用 pgrep 和 readlinkpgrep 命令可以根据进程名称查找进程 ID,而 readlink 命令可以用于获取进程的完整路径。 2.1 示例pid=$(pgrep nginx)readlink -f /proc/$pid/exe pgrep nginx:查找 nginx 进程的 P...
自建短链接服务
收藏开源项目 官网地址 : https://yourls.org/#API 项目地址 : https://github.com/YOURLS/YOURLS
Swoole ERROR swFactoryProcess_finish (ERROR 1004)
经常发现这个错误 虽然不影响线上服务, 但还是找下问题 [2019-01-08 19:12:31 *1955.15] NOTICE swFactoryProcess_finish (ERROR 1004): send 511 byte failed, because connection[fd=13] is closed. 通过 swoole 论坛 : https://group.swoole.com/question/106324 韩大大 回复是 : 这种错误请忽略吧,出错原因是发送数据时连接已经关闭了。有些客户端确实会出现这种情况。
Crontab定时任务不执行的原因
今天真是长知识 用了 crontab 这么久 才知道原来也需要 启动添加了定时任务 但是并不好使 [root@dev-gl-lh1 ApiAgent]# cat /etc/crontab SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * ...
PHP 爬虫踩坑实践
诶 最近总是踩坑实践 … 然后未完待续 . 今天接到需求 需要抓 https://coinmarketcap.com 下各交易平台数据. 爬虫选型当然是python, but 身为phper 不用 php 写一下我怎么会死心呢!!! 前两天找 swoole 客户端的轮子 Saber 很人性化, 官方推荐的果然不错. 人性化使用风格, ajax.js/axios.js/requests.py用户福音, 同时支持PSR风格操作 好吧 我就用它了 ! 部分代码展示: $url = 'https://coinmarketcap.com/zh/exchanges/binance/';go(function () use ($url) { [$repsonse] = SaberGM::list(['uri' => $url, 'proxy' => ['http://127.0.0.1:1234']]); $repsonse->getPar...
PHP 大整数 / 科学计数法 转 字符串
json 数据格式 中 大整数解开 会被转换为科学计数法 使用 JSON_BIGINT_AS_STRING json_decode 官方文档 json_decode($var, true, '512', JSON_BIGINT_AS_STRING) PHP 科学计数法转字符串<?PHP function ScToNum($num) { $numer = strtoupper($num); $parts = explode('E', $numer); list($int, $ex_str) = $parts; $exp = $ex_str[0]; $var = substr($ex_str, 1); if ($exp == '+') { return bcmul($int, bcpow(10, $var)); } return bcdiv($int, bcpow(10, $var));}
[踩坑] Swoole 4.2 协程
首先注意 'enable_coroutine' => false, // 是否自动开启协程 默认 true 我当然false 手动 go 调用协程 先踩小坑 go(): Using Xdebug in coroutines is extremely dangerous, please notice that it may lead to coredump! i 写了个接口测试下 就抛错了 , xdebug 不让用 说危险… 今天填下坑 2019/01/09 韩大大来做分享, 顿时觉得协程好牛逼!! 因为协程可以无限起. Demo 示例: public function coTest(){ go(function () { $time = time(); $chan = new Coroutine\Channel(); go(function () use ($chan) { co::sleep(1); ...



