This happend to me right noww as I tried to write a gui task manager for the GNU/Linux OS

  • Hupf@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    43 minutes ago

    My first programming related memory is of the QBasic interpreter.

    I had written some code I was quite happy with, but not saved it yet. As part of a subroutine for sound output, I quickly wrote a loop from 20 to 20000 to output a test signal over 1 second each with that frequency via the PC speaker and hit execute.

    Realizing my mistake, It being MS-DOS and thus single-threaded, I couldn’t Ctrl+C out of it without killing QBasic altogether and losing my code. I couldn’t turn town the PC speaker.

    I ended up closing various doors between the PC and me and waiting it out.

  • deegeese@sopuli.xyz
    link
    fedilink
    arrow-up
    15
    ·
    10 hours ago

    This is why VM snapshotting is so valuable.

    My IDE is my real workstation, and it hosts a VM in which I can plop some code, run it, crash, revert and try again.

    • bi_tux@lemmy.worldOP
      link
      fedilink
      arrow-up
      34
      arrow-down
      1
      ·
      11 hours ago

      Do you know the definition of insanity?

      do you know software developers?

        • bi_tux@lemmy.worldOP
          link
          fedilink
          arrow-up
          7
          arrow-down
          1
          ·
          10 hours ago

          it didn’t crash the kernel, it just killed every process that isn’t run by the root user, which kind of feels like a crash

          • CameronDev@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            10 hours ago

            Ah, that definitely would feel like a crash. Sent kill signal to cgroup accidentally? Or just iterate over all processes and signal them all?

            • bi_tux@lemmy.worldOP
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              9 hours ago

              probably the later, but idk how, all I did was insert a string in the following command like this:

              ``Command::new(“bash”)

              .arg(“-c”) .arg(format!(“ps -aux | grep -i "}" awk '{{print $2}’ | xagrs kill -9”, input)

              .output()

              .expect(“error”);``

              I’ve tested the command and it worked flawlessly in the terminal, but I have no idea what I’m doing, since I’m new to rust and never worked with this library

              • CameronDev@programming.dev
                link
                fedilink
                arrow-up
                4
                ·
                9 hours ago

                There are rust libraries to send signals, might be better to use those rather than calling bash. eg. https://docs.rs/nix/latest/nix/sys/signal/index.html

                I’m guessing if input was “”, then it would sigkill all processes? Less confident, but some functions behave slightly differently in an interactive console vs a non interactive, maybe ps has a different format when used non interactively?

                Aside, you want three backticks and a newline to get code formatting :)
                
                • bi_tux@lemmy.worldOP
                  link
                  fedilink
                  arrow-up
                  3
                  ·
                  edit-2
                  7 hours ago

                  thx, btw I figured it out:

                  I forgot to trimm the string, so it had a line break in it which lead to grep showing the processes from the term I put in + all processes that contain a space/linebreak and appearently all processes shown by ps aux contain some kind of space (makes sense, since there are spaces between the user, pid, etc) so yeah, I ended up trying to kill every process on the system, but it only killed the user processes, since I ran everything without sudo

    • N3Cr0@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      11 hours ago

      rm -rf <some placeholder>

      Works for . current directory. Yay!

      … also works for / system root. 🔥 Nay!

      • CameronDev@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        10 hours ago

        That won’t crash your kernel, and I was more curious about the OPs example. Task management is basically reading some files, and sending signals, it should be near impossible to crash the system.