我刚刚从 CentOS 6.5 升级到 7.0,我不太高兴,因为新版本systemd
可能给我带来了问题。似乎只是启动太快,异步启动进程并搞砸了服务依赖项。
例如,我有一些脚本设置,crond
在重启后触发:
@reboot /root/scripts/check_gmail.sh
@reboot /root/scripts/start_gps_listener.sh
Run Code Online (Sandbox Code Playgroud)
这会导致各种奇怪的错误(仅显示其中一个):
Warning: stream_socket_client(): unable to connect to tcp://192.168.20.4:4001
(Network is unreachable) in /root/scripts/check_gmail.php on line 137
ERROR: Network is unreachable (101)
Run Code Online (Sandbox Code Playgroud)
在上面我写到一个 TCP 套接字。我很清楚这crond
是在网络正确初始化为network is unreachable
.
Apache 和 MySQL (MariaDB) 也是如此。MySQL 启动很慢(大量数据),这意味着 Apache 和我的许多crond
启动脚本都失败了,因为在调用脚本时 MySQL 数据库没有运行。
我试图设置依赖项,但没有任何运气;我已将network
和mysql
服务附加到[Unit]
(如 所见systemctl list-dependencies
)。理想情况下,所有服务都会等到 MySQL 启动并运行:
vi /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target network.service …
Run Code Online (Sandbox Code Playgroud) 我注意到当我从 Windows 访问我的 Samba 共享时,smbd
守护进程将始终使用大约 10-20% 的 CPU - 无论是否从 Windows 使用该共享。即使我关闭共享/窗口,smbd
也会继续使用 CPU,只有重新启动/关闭我的 Windows 才能使 CPU 使用率降至正常。
这是我刚刚重新启动/启动我的 Windows 时 - 共享已映射但尚未访问。在我访问它之前,它将在 Windows 中具有此“红色”状态:
在我做任何其他事情之前,我检查了我的 Linux 上的smbstatus
和top
:
到目前为止没有问题 - CPU 使用率根本不明显,top
所以一切仍然很好。
但是……当我从 Windows 访问共享时,Linux CPU 立即提升到 10-20%:
并且smbstatus
总是显示一些锁定的(?)文件,这些文件肯定(?)不能从我的 Windows 访问:
在testparm
显示我的smb.conf
配置:
我可以“解决这个问题”的唯一方法是重新启动我的 Windows 或取消映射驱动器/共享。
还有一件奇怪的事情——当我取消了共享/驱动器的映射时,我当然仍然可以通过 UNC 访问共享……而当通过 UNC 访问它时,它根本不会提高 CPU!?奇怪的!
我的硬件是最新的/最新的:
服务器:Core i5 1.5-2.9GHz 双核/HT 16GB RAM Samsung 850 Pro (512GB)
客户端:Windows 8.1
我在 …