我有一台运行 samba 的 14.04 服务器。我想建立一些基于时间的服务器访问。我为整个房子托管媒体,目标是让孩子们的电视在某个时间变得无用。我已将以下内容放入 root 中crontab
:
0 22 * * 0-4 /etc/init.d/samba stop
0 22 * * 0-4 /etc/init.d/smbd stop
0 22 * * 0-4 /etc/init.d/nmbd stop
股票在指定的时间内继续活跃。我做错了什么?
答案1
您的命令不起作用,因为/etc/init.d/smbd
并/etc/init.d/nmbd
在开头包含以下内容:
if init_is_upstart; then
exit 1
fi
因此,由于init
ubuntu 中的 现在是 Upstart(/etc/init.d/
来自 SysV),您需要从目录运行启动-停止脚本/etc/init/
。/etc/init.d/
仍然存在以实现向后兼容,因为许多程序仍然使用此目录。
为了让您更轻松,Ubuntu 有service
命令:
sudo service smbd stop
sudo service nmbd stop
运行时root
:
service smbd stop
service nmbd stop
service
将首先在/etc/init/
目录中搜索,然后/etc/init.d/
.service
从另一个意义上讲也是有效的,如果这两个目录中有两个同名的脚本(如 和 的情况smbd
)nmbd
,则 Upstart 脚本(在 中/etc/init/
)将优先于 SysV 脚本(在 中/etc/init.d/
)。
您的输入也cron
可以变得更简单:
0 22 * * 0-4 service samba stop && service smbd stop && service nmbd stop
&&
确保仅当前一个命令成功(即退出代码$?=0
)时才运行下一个命令。