Xiangru Xu

71 papers C 10Journal 49Unranked 12
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Yuhao Zhang, Xiangru Xu
2025 C conf
ACC
Yuhao Zhang, Xiangru Xu
2025 J jnl
CoRR
Yuhao Zhang, Xiangru Xu
2025 J jnl
IEEE Control. Syst. Lett.
Hang Zhang, Abigail J. Winn, Yuhao Zhang, Xiangru Xu
2025 J jnl
Autom.
Ziliang Lyu, Xiangru Xu, Yiguang Hong, Lihua Xie
2025 J jnl
CoRR
Yujie Wang, Xiangru Xu
2025 J jnl
Autom.
Yujie Wang, Xiangru Xu
2025 J jnl
Autom.
Yuhao Zhang, Xiangru Xu
2025 J jnl
IEEE Control. Syst. Lett.
Hang Zhang, Xiangru Xu
2025 conf
CCTA
Hang Zhang, Harry Zhang, Yujie Wang, Zhenhao Zhou, Dan Negrut, Xiangru Xu
2024 J jnl
Syst. Control. Lett.
Yujie Wang, Xiangru Xu
2024 C conf
ACC
Hang Zhang, Yuhao Zhang, Xiangru Xu
2024 J jnl
IEEE Trans. Autom. Control.
Yujie Wang, Xiangru Xu
2024 J jnl
IEEE Control. Syst. Lett.
Yuhao Zhang, Hang Zhang, Xiangru Xu
2024 J jnl
IEEE Trans. Autom. Control.
Ziliang Lyu, Xiangru Xu, Yiguang Hong
2023 J jnl
CoRR
Yujie Wang, Xiangru Xu
2023 J jnl
CoRR
Yuhao Zhang, Hang Zhang, Xiangru Xu
2023 J jnl
IEEE Control. Syst. Lett.
Yuhao Zhang, Hang Zhang, Xiangru Xu
2023 C conf
ACC
Yujie Wang, Xiangru Xu
2023 J jnl
IEEE Trans. Control. Syst. Technol.
Victor Freire, Xiangru Xu
2023 J jnl
CoRR
Hang Zhang, Yuhao Zhang, Xiangru Xu
2023 J jnl
CoRR
Yujie Wang, Xiangru Xu
2023 C conf
ACC
Yuhao Zhang, Xiangru Xu
2023 J jnl
CoRR
Yuhao Zhang, Xiangru Xu
2023 conf
CDC
Yujie Wang, Xiangru Xu
2023 J jnl
CoRR
Yujie Wang, Xiangru Xu
2023 J jnl
CoRR
Harry Zhang, Stefan Caldararu, Ishaan Mahajan, Shouvik Chatterjee, Thomas Hansen, Abhiraj Dashora, Sriram Ashokkumar, Luning Fang, Xiangru Xu, Shen He, Dan Negrut
2022 J jnl
CoRR
Asher Elmquist, Aaron Young, Ishaan Mahajan, Kyle Fahey, Abhiraj Dashora, Sriram Ashokkumar, Stefan Caldararu, Victor Freire, Xiangru Xu, Radu Serban, Dan Negrut
2022 J jnl
CoRR
Asher Elmquist, Aaron Young, Thomas Hansen, Sriram Ashokkumar, Stefan Caldararu, Abhiraj Dashora, Ishaan Mahajan, Harry Zhang, Luning Fang, He Shen, Xiangru Xu, Radu Serban, Dan Negrut
2022 C conf
ACC
Yuhao Zhang, Sequoyah Walters, Xiangru Xu
2022 J jnl
CoRR
Yujie Wang, Xiangru Xu
2022 C conf
ACC
Yujie Wang, Xiangru Xu
2022 J jnl
IEEE Robotics Autom. Lett.
Victor Freire, Xiangru Xu
2022 conf
CDC
Yuhao Zhang, Xiangru Xu
2022 J jnl
CoRR
Yuhao Zhang, Xiangru Xu
2022 J jnl
CoRR
Ziliang Lyu, Xiangru Xu, Yiguang Hong
2022 J jnl
Autom.
Ziliang Lyu, Xiangru Xu, Yiguang Hong
2021 J jnl
IEEE Trans. Autom. Control.
Xiangru Xu, Behçet Açikmese
2021 J jnl
CoRR
Yuhao Zhang, Sequoyah Walters, Xiangru Xu
2021 J jnl
IEEE Trans. Autom. Control.
Xiangru Xu, Behçet Açikmese, Martin J. Corless
2021 J jnl
CoRR
Yujie Wang, Xiangru Xu
2020 J jnl
CoRR
Yuhao Zhang, Xiangru Xu
2020 J jnl
Autom.
Xiangru Xu, Necmiye Ozay, Vijay Gupta
2020 J jnl
CoRR
Ziliang Lyu, Xiangru Xu, Yiguang Hong
2019 conf
CDC
Adam M. Tahir, Xiangru Xu, Behçet Açikmese
2019 C conf
ACC
Adam M. Tahir, Xiangru Xu, Behçet Açikmese
2018 J jnl
CoRR
Xiangru Xu, Behçet Açikmese
2018 J jnl
Autom.
Xiangru Xu
2018 J jnl
IEEE Trans Autom. Sci. Eng.
Xiangru Xu, Jessy W. Grizzle, Paulo Tabuada, Aaron D. Ames
2018 C conf
ACC
Xiangru Xu, Behçet Açikmese, Martin J. Corless, Hossein Sartipizadeh
2018 J jnl
CoRR
Xiangru Xu, Necmiye Ozay, Vijay Gupta
2018 conf
CDC
Xiangru Xu, Adam M. Tahir, Behçet Açikmese
2018 J jnl
CoRR
Xiangru Xu, Adam M. Tahir, Behçet Açikmese
2017 conf
CDC
Xiangru Xu
2017 J jnl
IEEE Trans. Autom. Control.
Aaron D. Ames, Xiangru Xu, Jessy W. Grizzle, Paulo Tabuada
2017 conf
CCTA
Xiangru Xu, Thomas Waters, Daniel Pickem, Paul Glotfelter, Magnus Egerstedt, Paulo Tabuada, Jessy W. Grizzle, Aaron D. Ames
2016 J jnl
CoRR
Aaron D. Ames, Xiangru Xu, Jessy W. Grizzle, Paulo Tabuada
2016 conf
CDC
Xiangru Xu
2016 J jnl
CoRR
Xiangru Xu, Jessy W. Grizzle, Paulo Tabuada, Aaron D. Ames
2016 J jnl
CoRR
Xiangru Xu, Paulo Tabuada, Jessy W. Grizzle, Aaron D. Ames
2015 C conf
ACC
Shao-Chen Hsu, Xiangru Xu, Aaron D. Ames
2015 J jnl
CoRR
Xiangru Xu, Necmiye Ozay, Vijay Gupta
2015 conf
CDC
Xiangru Xu, Necmiye Ozay, Vijay Gupta
2015 conf
ADHS
Xiangru Xu, Paulo Tabuada, Jessy W. Grizzle, Aaron D. Ames
2014 J jnl
CoRR
Xiangru Xu, Yiguang Hong
2014 conf
CDC
Xiangru Xu, Yiguang Hong
2013 J jnl
Autom.
Daizhan Cheng, Xiangru Xu
2013 J jnl
IEEE Trans. Autom. Control.
Xiangru Xu, Yiguang Hong
2013 C conf
ACC
Xiangru Xu, Yanqiong Zhang, Yiguang Hong
2013 J jnl
J. Syst. Sci. Complex.
Xiangru Xu, Yiguang Hong
2011 conf
CDC/ECC
Daizhan Cheng, Yin Zhao, Xiangru Xu
redb/utils/wrapper_run_sort_files.py
← Index redb/utils/wrapper_run_sort_files.py python
import os
import subprocess
import multiprocessing
import logging
from concurrent.futures import ThreadPoolExecutor
import signal

# Variables (replace these with actual values)
src_root_folder_path = "/mnt/samples/consilience/malware/vx-bazaar-expanded/"
dst_root_folder_path = "/mnt/samples/consilience/malware/_sorted_samples/vx-bazaar/"
log_folder_path = "/mnt/samples/consilience/malware/ops-logs/"
folder_names = ["Bazaar.2022.01", "Bazaar.2022.02", "Bazaar.2022.03", "Bazaar.2022.04"]  # List of folder names
script_name = "sort_files_by_type.py"
dry_run = True  # Set to True for testing without execution


# Ensure the log folder exists
os.makedirs(log_folder_path, exist_ok=True)

# Configure logging
main_log_name = "20241229-main_script.log"
main_log_file = os.path.join(log_folder_path, main_log_name)
if not os.path.exists(main_log_file):
    open(main_log_file, 'a').close()  # Create the log file if it doesn't exist
# main_log_file = os.path.join(log_folder_path, main_log_name)
# try:
#     with open(main_log_file, 'a') as f:
#         print(f"Successfully created/opened log file at: {main_log_file}")
#     # Verify the file exists
#     if os.path.exists(main_log_file):
#         print(f"Confirmed log file exists at: {main_log_file}")
#         print(f"File size: {os.path.getsize(main_log_file)} bytes")
# except Exception as e:
#     print(f"Error with log file: {e}")

# Configure logging
logging.basicConfig(
    filename=main_log_file,
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s",
    force=True,
    filemode='a'
)

logging.info("Logging initialization test message")

# Add logging handler to flush immediately
class FlushableFileHandler(logging.FileHandler):
    def emit(self, record):
        super().emit(record)
        self.flush()

for handler in logging.getLogger().handlers:
    if isinstance(handler, logging.FileHandler):
        handler.flush()

# Global flag for graceful termination
terminate_flag = False

def signal_handler(signum, frame):
    global terminate_flag
    terminate_flag = True
    logging.warning("Termination signal received. Attempting to shut down gracefully.")

# Register signal handler
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)

# Define the worker function
def process_folder(folder):
    global terminate_flag
    if terminate_flag:
        logging.warning(f"Skipping folder {folder} due to termination signal.")
        return

    try:
        # Extract the word and date fields from the folder name
        word, year, month = folder.split('.')

        # Construct source, destination, and log paths
        src_folder = os.path.join(src_root_folder_path, folder)
        dst_folder = os.path.join(dst_root_folder_path, folder)
        log_file = os.path.join(
            log_folder_path, f"20241229-SORT_FILES-bazaar_{year}.{month}.output.log"
        )

        if not os.path.exists(log_file):
            open(log_file, 'a').close()  # Create the log file if it doesn't exist

        # Build the command
        command = ["python3", script_name, src_folder, dst_folder]

        if dry_run:
            logging.info(f"Dry run: Would execute: {command}, log: {log_file}")
            print(f"Dry run: Would execute: {command}, log: {log_file}")
        else:
            logging.info(f"Starting task for folder: {folder}")
            with open(log_file, "w") as log:
                subprocess.run(command, stdout=log, stderr=subprocess.STDOUT, check=True)
            logging.info(f"Task completed for folder: {folder}")

    except subprocess.CalledProcessError as e:
        logging.error(f"Subprocess failed for folder {folder} with return code {e.returncode}: {e}")
        print(f"Subprocess failed for folder {folder}: {e}")
    except Exception as e:
        logging.error(f"Error while processing folder {folder}: {e}")
        print(f"Error while processing folder {folder}: {e}")

# Determine the number of processors
num_processors = multiprocessing.cpu_count()

try:
    # Process folders using ThreadPoolExecutor
    with ThreadPoolExecutor(max_workers=num_processors-1) as executor:
        executor.map(process_folder, folder_names)

except Exception as e:
    logging.critical(f"Critical error in the main execution: {e}")
    print(f"Critical error: {e}")

logging.info("All tasks completed.")
print("All tasks completed.")