标签: shutdown

如何关机?我正在构建一个自己的小操作系统

程序集中的hlt指令可以在停止处理器时关闭计算机吗?如果可以用我所说的来完成,这是正确的方法吗?

可以关机吗?

start:
    xor ax, ax; ;clear ax
    mov bx, ax; ;clear bx
    cli ;stop all interrupts
    hlt ;halt the cpu
Run Code Online (Sandbox Code Playgroud)

如果这不是可行的方法,如果这不会关闭系统,请告诉我正确的方法.

x86 assembly operating-system shutdown system-shutdown

11
推荐指数
1
解决办法
2776
查看次数

我如何关闭我的heroku应用程序?

我已经慢慢地奋斗到我在Heroku上有一个正在运行的Grails应用程序的地步.我现在要睡觉,所以我想把它关闭,所以我不会继续用掉我的Dyno的750个免费小时.这可能很明显但我找不到如何关闭我的Heroku网络服务器并在早上再次重新启动它.

shutdown heroku

11
推荐指数
3
解决办法
1万
查看次数

如果从关闭钩子调用System.exit会发生什么?

我在Java中有一个相当复杂的关闭 - 有很多清理工作要做.特别是我试图找出如何从关闭钩子线程错误处理.我的代码目前包括:

try {
    return shutdownPromise = doShutdown();
}
catch (Throwable exc) {
    logger.error("An exception was thrown while shutting down the application.", exc);  
    System.exit(1);
    return null;
}
Run Code Online (Sandbox Code Playgroud)

当我最初写这篇文章时,我基本上认为,关机时的错误应该直接进行exit.但是exit水平不是那么低; 它调用了shutdown hooks.

所以我认为 -

  1. 从关闭钩子调用退出做什么?
  2. 从关闭钩子处理错误的正确方法是什么?

java shutdown shutdown-hook

11
推荐指数
1
解决办法
3924
查看次数

Java关闭钩子

我已将以下代码添加到我的程序中:

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("exit");
    }
}){});
Run Code Online (Sandbox Code Playgroud)

但是,我没有看到这个消息.附加信息:我从Netbeans IDE内部运行程序.

编辑:我忘了添加有一个全局线程,使程序保持活着.我按下Netbeans右下角的[x]来关闭它.

java hook shutdown

11
推荐指数
1
解决办法
2万
查看次数

没有SSH远程关闭/重启Linux机箱?

我需要远程关闭并重新启动Linux(Ubuntu)机器而无需登录它们(否则简单的命令可以完成这项工作).这些机器只是便宜的PC,因此没有安装特殊的电源管理硬件(尽管它们可以在局域网上唤醒).是否有某种"电源管理服务器"软件可以安装在这些盒子上,这些软件会监听远程重启/关闭请求并采取相应措施?当然,如果它需要一些身份验证(密码)以响应请求,那将是很好的.

linux reboot shutdown remote-access wake-on-lan

10
推荐指数
2
解决办法
4万
查看次数

从linux终端关闭Windows机器

我在linux机器上运行一个应用程序.通过将Windows机器的IP地址作为输入,应用程序必须关闭Windows机器.如果机器运行相同的操作系统很容易,但我很困惑如何在跨操作系统中执行此操作.

linux windows shutdown

10
推荐指数
2
解决办法
4万
查看次数

设置Java退出代码而不退出

在具有大量关闭操作的高度并发程序中,想知道如何在不过早调用System.exit()的情况下设置退出代码?可以设置"当其他一切完成时执行此代码"方法?但我真的只想提前设置退出代码.

java shutdown exit-code

10
推荐指数
1
解决办法
5509
查看次数

停止Logback系统以实现干净关闭

我最近一直在尝试使用logback,并且直接从Eclipse内部运行示例.当我这样做时,我注意到 - 即使在我的静态main(String[] args)方法结束后(从我的Java驱动程序类中),应用程序仍然在运行.

我最终确定Logback正在管理自己的线程,即使在我的主应用程序退出之后它仍然存活.我搜索了一些解决方案,并发现这是一种从Java内部显式关闭Logback的方法:

ILoggerFactory factory = LoggerFactory.getILoggerFactory();
if(factory instanceof LoggerContext) {
    LoggerContext ctx = (LoggerContext)factory;
    ctx.stop();
}
Run Code Online (Sandbox Code Playgroud)

这真的是干净地关闭logback的唯一方法吗?我从来没有遇到过一个日志系统(JUL,JCL,log4j等),它让你明确地关闭它以便优雅地退出你的应用程序......

提前致谢!

更新:这里是logback.xml:

<configuration debug="true" scan="true" scanPeriod="5 minutes">
    <appender name="logManager-consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>TRACE</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>NEUTRAL</onMismatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="logManager-smtpAppender" class="ch.qos.logback.classic.net.SMTPAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>NEUTRAL</onMismatch>
        </filter>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <smtpHost>my.smtp.host</smtpHost>
        <to>john.smith@example.com</to>
        <from>no-reply@example.com</from>
        <username>my_user</username>
        <password>my_password</password>
        <subject>%logger{20} …
Run Code Online (Sandbox Code Playgroud)

java multithreading shutdown logback slf4j

10
推荐指数
1
解决办法
3305
查看次数

当关机挂钩坏了

如果我在我的Java程序的运行时添加一个关闭钩子,如下所示:

public class MyShutdownHook implements Runnable
{
    @Override
    public void run()
    {
        // Stuff I want executed anytime
        // the program, Java, or the OS exits normally,
        // crashes, or terminates unexpectedly for any reason.
    }
}

// The in another method...
Runtime.getRuntime().addShutdownHook(new MyShutdownHook());
Run Code Online (Sandbox Code Playgroud)

......那么有没有曾经在那里,任何情况下,run()方法将不会执行该程序/ Java的/ OS退出时正常,崩溃或意外终止?如果是这样,什么情况下能够绕过Runtime关闭钩子,为什么?

java runtime shutdown

9
推荐指数
1
解决办法
2382
查看次数

如何正确关闭java ExecutorService

我有一个简单的java ExecutorService运行一些任务对象(实现Callable).

ExecutorService exec = Executors.newSingleThreadExecutor();
List<CallableTask> tasks = new ArrayList<>();
// ... create some tasks
for (CallableTask task : tasks) {
 Future future = exec.submit(task);
 result = (String) future.get(timeout, TimeUnit.SECONDS);
 // TASKS load some classes and invoke their methods (they may create additional threads)
 // ... catch interruptions and timeouts
}
exec.shutdownNow();
Run Code Online (Sandbox Code Playgroud)

在完成所有任务(DONE或TIMEOUT-ed)之后,我尝试关闭执行程序,但它不会停止:exec.isTerminated() = FALSE. 我怀疑某些被执行的任务未正确终止.

是的,我知道执行者的关闭不能保证任何事情:

除尽力尝试停止处理主动执行任务之外,没有任何保证.例如,典型的实现将通过{@link Thread#interrupt}取消,因此任何未能响应中断的任务都可能永远不会终止.

我的问题是,有没有办法确保这些(任务)线程终止?我提出的最佳解决方案是System.exit()在程序结束时调用,但这很简单.

java multithreading shutdown executorservice

9
推荐指数
2
解决办法
8073
查看次数