快速停止除 sshd 之外的所有网络服务(或仅运行 sshd 进行启动)

快速停止除 sshd 之外的所有网络服务(或仅运行 sshd 进行启动)

我有一台 Ubuntu Server 12.04 机器,用作家庭文件服务器。有时,我希望能够关闭所有常规网络服务(nfs-kernel-server 及其相关服务、netatalk、nmbd、smbd、backuppc、subsonic 和 transmission-daemon),而不关闭 sshd。我还希望能够在不启动所有这些服务的情况下启动机器,但sshd 正在运行。

在 upstart 之前,这很简单。将默认运行级别设置为 3。将上述网络服务设置为在运行级别 3-5 启动,但不是在 2。让 sshd 从 2-5 开始。然后,要关闭除 sshd 之外的所有服务,请运行telinit 2。或者要在不启动所有这些服务的情况下启动,请附加3到内核命令行。

但是,其中一些服务(idmapd、statd、rpcbind、nmbd 和 smbd)已转换为 upstart 作业。作为测试,我尝试将其添加and runlevel [345]到 smbd 和 nmbd 的启动条件中,但似乎没有任何效果:

start on (local-filesystems and net-device-up and runlevel [345])
stop on runlevel [!345]

我遗漏了什么?如何让这些 upstart 作业响应运行级别的更改?

相关内容